✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Cortes de control usando tablas internas
Para la elaboración de reportes la mayoría de las veces vamos a usar tablas internas, ya que de esta forma almacenamos los registros que obtenemos de las tablas de la BD o cargar manualmente los registros de datos que surgen del procesamiento del programa y luego vamos a estructurar y formatear los datos que se mostraran como salida del programa.
Cuando hablamos de estructurar y formatear estamos indicando como los organizamos para la salida en pantalla, dándole un formato determinado, agrupando campos de salida, sumarizando campos, mostrando totales, etc.
Para realizar todo lo anterior vamos a usar lo que se denomina Cortes de control. Que consiste en una forma de estructura un reporte de salida por pantalla de modo de poder sumarizar datos y mostrar totales por distintos campos del reporte.
Paso a paso para implementar cortes de control:
Los cortes de control en definitiva son una técnica y como toda técnica, se encuentran compuestas por una serie de pasos que debemos seguir para que funcione correctamente.
Lo primero que debemos hacer para implementar el corte de control es declarar la tabla interna y su área de estructura auxiliar de salida del reporte, por último declaramos una variable de tipo i, por cada uno de los campos que deseamos sumarizar.
Ahora se borra la tabla interna con la sentencia REFRESH y se inicializa el área de trabajo con la sentencia CLEAR.
Luego ordenamos la tabla interna por los campos por los cuales se va a realizar el corte de control.
Ahora recorremos la tabla interna con la sentencia LOOP AT-ENDLOOP en donde se realiza el corazón de la técnica de corte de control.
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-ENDAT
cuya sintaxis es la siguiente AT NEW campo. Esta sentencia se ejecuta por cada valor nuevo que se encuentre en el campo. Acá la sentencia AT NEW mira el contenido del campo que acaba de llegar y lo compara con el valor que tiene el campo en el registro anterior de la tabla interna.
Si los valores son diferentes se ejecuta la lógica ABAP que se encuentra dentro del AT NEW, si son iguales no se ejecuta. Si es el primer registro lo compara contra nada y por lo tanto se ejecuta la lógica que tiene la sentencia AT NEW.
Y la sentencia AT END-ENDAT.
Esta sentencia se ejecuta cuando se esta procesando el último registro de la tabla interna que tenga almacenado un valor determinado de campo.
Esta sentencia mira hacia adelante, es decir compara el contenido del campo del registro actual de la tabla interna con el contenido del mismo campo del siguiente registro.
Si el resultado de la comparación es que los contenidos de ambos campos son diferentes entonces se ejecuta la lógica ABPA que se encuentra dentro del AT END-ENDAT. Si los contenidos son iguales no se ejecuta la lógica de la sentencia AT END-ENDAT. Si estamos procesando el ultimo registro de la tabla interna entonces compara el contenido del registro contra nada y el resultado de esa comparación es que son distintos por lo que ejecuta la lógica ABAP que se encuentra dentro del AT END-ENDAT.
 
 
 
Sobre el autor
Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para la Carrera Consultor ABAP.
Lisimaco Prieto Herrera
Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X
✒️Autor de: 96 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programación abap.
Certificación Académica de Lisimaco Prieto