Corte de Control
Es una forma de estructurar un reporte de salida por pantalla de modo de poder sumarizar datos y mostrar totales por distintos campos del reporte.
Para realizar un corte de control, ABAP pone a nuestra disposición dos sentencias que nos facilitan el trabajo como programadores:
La sentencia AT NEW
se ejecuta por cada valor nuevo que se encuentre almacenado en campo.
La sentencia AT NEW campo mira hacia atrás, es decir compara el contenido del campo del registro actual de la tabla interna que se está procesando contra el contenido del campo del registro anterior de la tabla interna que se procesó.
Si el resultado de esa comparación es que los contenidos de ambos campos son diferentes entonces se ejecuta la lógica ABAP que se encuentra dentro del AT NEW.
Si el resultado de esa comparación es que los contenidos de ambos campos son iguales entonces no se ejecuta la lógica ABAP que se encuentra dentro del AT NEW.
Si estamos procesando el primer registro de la tabla interna entonces compara el contenido del campo contra nada y el resultado de esa comparación es que son distintos por lo que se ejecuta la lógica ABAP que se encuentra dentro del AT NEW.
Y la sentencia AT END OF
campo mira hacia adelante, es decir compara el contenido del campo del registro actual de la tabla interna que se está procesando contra el contenido del campo del registro siguiente de la tabla interna que todavía no se procesó.
Si el resultado de esa comparación es que los contenidos de ambos campos son diferentes entonces se ejecuta la lógica ABAP que se encuentra dentro del AT END OF.
Si el resultado de esa comparación es que los contenidos de ambos campos son iguales entonces no se ejecuta la lógica ABAP que se encuentra dentro del AT END OF.
Si estamos procesando el último registro de la tabla interna entonces compara el contenido del campo contra nada y el resultado de esa comparación es que son distintos por lo que se ejecuta la lógica ABAP que se encuentra dentro del AT END OF.