✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Los cortes de control utilizando tablas internas
La tarea que más vamos a realizar como programadores ABAP es la confección de reportes de salida por pantalla.
En las tablas internas podremos almacenar registros que obtenemos de las tablas de base de datos o cargar manualmente registros de datos que surgen del procesamiento del programa y luego vamos a estructurar y formatear los datos que se mostraran como salida de programa.
Cuando se menciona estructurar y formatear nos referimos 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.
Para realizar todo esto necesitamos utilizar los cortes de control.
Cortes de controlâ–º es una forma de estructura un reporte de salida por pantalla de modo de poder sumarizar datos y mostrar totales por distintos campos del reporte.
Implementación de un corte de control
1. Declarar la tabla interna de salida del reporte, debe 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 a ser el mismo orden en ell que se desea que esos campos se visualicen en pantalla.
2. Por una particularidad de ABAP vamos a necesitar declarar siempre una estructura auxiliar.
3. Declarar una variable de tipo I para cada uno de los importes que se desean sumarizar.
(Buena práctica, luego de declarar las variables, borrar el contenido de la tabla interna con REFRESH)
4. Cargar el contenido de la tabla interna
5. Ordenar la tabla interna por los campos por los cuales se va a realizar el corte de control (SORT)
6. Recorrer la tabla interna dentro de LOPP-ENDLOOP, dentro del LOOP lo primero que se debe hacer y que es importante es pasar el contenido de la estructura o área de trabajo.
7. Para el corte de control hay dos sentencias:
Sentencia AT NEW, con la siguiente sentencia:
AT NEW campo.
...
ENDAT.
La sentencia AT NEW campo 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 contendido 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 proceso.
â–º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 diferentes entonces NO se ejecuta la lógica ABAP que se encuentra dentro del AAT 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 cuya sintaxis es la siguiente:
AT END OF campo.
...
ENDAT.
La sentencia AT END OF campo se ejecuta cuando se esta procesando el último registro que tenga almacenado un valor determinado de campo.
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 proceso.
â–ºSi el resultado de esa comparación es que los contenidos de ambos campos son diferentes entonces ejecuta la lógica ABAP que se encuentra dentro de 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 esta comparación es que son distintos por lo que se ejecuta la lógica ABAP que se encuentra dentro del AT END OF.
Una vez ejecutados cada uno de los AT NEW entonces fuera de ellos será necesario sumarizar o acumular cada uno de los resultados:
ADD variable TO variable.
ADD variable TO variable.
ADD variable TO variable.
 
 
 
Sobre el autor
Publicación académica de Estefania Selene Dulac, en su ámbito de estudios para la Carrera Consultor ABAP.
Estefania Selene Dulac
Profesión: Consultora Seguridad Sap - Argentina - Legajo: XT35F
✒️Autor de: 112 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Cuento con un muy buen manejo de herramientas informáticas y facilidad para aprender nuevas aplicaciones. me considero una persona responsable, entusiasta, organizada y motivada.
Certificación Académica de Estefania Dulac