✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
1. ¿Qué es un corte de control?
Una de las tareas que más vamos a realizar los programadores ABAP es la confección de reportes de salida por pantalla.
Para realizar estos reportes vamos a trabajar con tablas internas, ya que de esta forma podremos almacenar los registros que obtenemos de las tablas de datos o cargar manualmente los registros de datos que surgen del procesamiento del programa y luego vamos a organizar la salida de los datos en la pantalla, dándoles un formato determinado, agrupando los campos de salida, ordenando el reporte por determinados campos, sumarizando campos, mostrando totales por distintos campos, entre otras cuestiones posibles. Para ello utilizamos los Cortes de control.
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.
2. El paso a paso para implementar un corte de control
Lo primero que vamos a necesitar para implementar el corte de control es es declarar la tabla interna de salida del reporte. La particularidad que va a tener esta tabla es que va a estar compuesta por cada uno de los campos que se desean incluir en el reporte de salida y el orden en el que se declaran los campos en la tabla interna va aser el mismo orden en el que se desea que esos campos se visualicen en pantalla.
Por una particularidad de ABAP vamos a necesitar declarar siempre una estructura auxiliar, cuyo nombre será WA_ESTRUCTURA_AUX.
Por último, vamos a declarar una variable de tipo I para cada uno de los importes que deseamos sumarizar.
Luego de declarar todas las variables necesarias, vamos primeramente a borrar el contenido de la tabla interna ejecutando el REFRESH.
A continuación, vamos a proceder con el llenado del contenido de la tabla interna.
Luego lo que vamos a necesitar es ordenar la tabla interna por los campos por los cuales se va a realizar el corte de control.
A continuación, vamos a recorrer la tabla interna con LOOP-ENDLOOP
Una vez dentro del LOOP lo primero que vamos a hacer es pasar el contenido de la estructura o área de trabajo a una estructura auxiliar, WA_ESTRUCTURA a WA_ESTRUCTURA_AUX.
Para realizar un corte de control, ABAP pone a nuestra disposición dos sentencias:
AT NEW cuya sintaxis es la siguiente:
AT NEW campo.
ENDAT.
Esta sentencia se ejecuta por cada valor nuevo que se encuentre almacenado en campo. 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.
AT END OF cuya sintaxis es la siguiente:
AT END OF campo.
ENDAT.
Esta sentencia se ejecuta cuando se está procesando el último registro que tenga almacenado un valor determinado de campo. Compara el contenido del campo del registro actual de la tabla interna que se está procesando contra el contenido del campo de registro siguiente de la tabla interna que todavía no se proceso
- Si el resultado de la esa comparación es que los contenidos de ambos Campos son diferentes entonces 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.
 
 
 
Sobre el autor
Publicación académica de Alexis Jesus Perez Ramirez, en su ámbito de estudios para la Carrera Consultor ABAP.
Alexis Jesus Perez Ramirez
Profesión: Licenciado en Computación - Venezuela - Legajo: LK96B
✒️Autor de: 69 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Licenciado en computación egresado de la ucv, con amplia experiencia en base de datos, análisis de sistemas y programación; tanto en ambiente web, cliente/servidor como en computación central.
Certificación Académica de Alexis Perez