
Para realizar Cortes de Control con datos contenidos en una Tabla Interna se utiliza la sentencia AT con dos formatos:
AT NEW / ENDAT: Para la ejecución al inicio de cada corte (borre de acumuladores, salvado de la nueva clave, etc.).
AT END OF / ENDAT: Cuando ABAP detecta que hubo un cambio en el campo de control, se ejecutan las sentencias contenidas dentro de ésta.
El orden de procesamiento sería:
a) Se Carga la Tabla Interna
b) Se Ordena por el campo del Corte.
c) Se la recorre y dentro del LOOP
- Se copia el contenido del registro (desde el área de trabajo) a un área auxiliar.
NOTA: Esto es necesario porque ABAP rellena con asteriscos los campos a la derecha del campo clave.
- Se ejecuta la sentencia AT NEW si ABAP detecta que la Clave Actual no es igual a la Anterior.
- Se acumula el campo para los totales
- Se ejecuta la sentencia AT END OF si ABAP detecta que la Clave del Próximo registro es distinta a la Actual.
Consideraciones a partir del ejercicio con 2 Cortes de Control
1) La Tabla Interna debe estar definida con los campos clave en los primeros lugares y en orden de importancia (distrito, cliente y luego el resto).
2) Por cada campo clave se utiliza un AT NEW y un AT END OF, pudiéndose evitar el de menor orden ya que contendría sólo el CLEAR del acumulador.