✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Corte de control es una forma ordenada de mostrar información en forma jerárquica. Consta de usar un while anidado dentro del otro. Esto sería un corte de control simple, pero se pueden anidar más while dentro de cada uno para hacer un corte de control de doble, triple, hasta n profundidad. Es una forma de estructurar un reporte de salida de modo de poder sumarizar datos y mostrar totales por distintos campos del reporte, una condición escencial que presentan los cortes de control es que la tabla de salida del reporte debe ordenarse por los campos por los cuales se va a realizar el corte de control. Es necesario usar una estructura auxiliar para almacenar los datos del registro de la tabla interna del reporte ya que ABAP completará con asteriscos los campos que se encuentren a la derecha del campo por el cual realizamos el corte y se perderá la información almacenada en ellos.
También se suele usar un acumulador para mostrar información como totales de sumas de ventas, cantidad de visitas, o lo que se esté usando. Recordemos que se usa en lugar de usar comando SQL como COUNT, SUM o AVG.
ABAP completa con asteriscos todos los campos a la derecha del campo por el cual hacemos el corte.
AT NEW campo, compara el actual valor del campo con el valor anterior, si es distinto se procesa el codigo dentro del AT NEW
AT END campo, compara el actual valor del campo con el valor siguiente, que se encuentra en la proxima vuelta de la tabla interna, en caso de ser distintos se procesará el codigo dentro del AT END.
Para sumar campos, podemos usar la sentencia ADD o también la sentencia SUM, que se usa para sumarizar variables de tipo entero (I), punto flotante (F) o numero empaquetado (P).
Se puede realizar un corte de control por mas de un campo, AT NEW, AT END se pone el campo que se encuentra mas a la derecha.
La sentencia AT FIRST .. ENDAT sólo puede ser utilizada dentro de un bucle LOOP .. ENDLOOP e identifica un
bloque de proceso. La sentencia se ejecuta con el primer valor o primer registro de la sentencia LOOP .. ENDLOOP.
La sentencia AT LAST .. ENDAT sólo puede ser utilizada dentro de un bucle LOOP .. ENDLOOP e identifica un
bloque de proceso. La sentencia se ejecuta con el último valor o último registro de la sentencia LOOP .. ENDLOOP.
 
 
 
Sobre el autor
Publicación académica de Jose Ignacio Rodini, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Ignacio Rodini
Profesión: Licenciado en Informatica - Argentina - Legajo: HM58N
✒️Autor de: 115 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Rodini