✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Como programadores ABAP, confeccionaremos reportes de salida por pantalla y tendremos que trabajar con tablas internas, para poder almacenar los registros que obtenemos de las tablas base de datos, y luego estructurar y formatear los datos que se manifestaràn como salida del programa. Para poder estructurar y formatear los datos necesitaremos los Cortes de control.
Un 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.
Paso a paso para implementar un corte de control
Los cortes de control son una tècnica compuesta por una serie de pasos que debemos seguir para que funcione correctamente.
1 Declarar la tabla interna de salida del reporte. Esta tabla 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 serà el mismo en el que se desea que esos campos se visualicen en pantalla.
2 Declarar siempre una estructura auxiliar y tambièn declarar una variable tipo I para cada uno de los importes que deseamos sumarizar.
3 Luego de declarar las variables necesarias, hay que borrar el contenido de la tabla interna TI_CLIENTES.
4 A continuaciòn, proceder con el llenado del contenido de la tabla interna TI_CLIENTES. Cargar entonces cada uno de los registros de datos de la tabla interna completando los campos REGION, DISTRITO, NROCLIENTE e IMPORTE.
5 Luego tendremos que ordenar la tabla interna TI_CLIENTES por los campos por los cuales se va a realizar el corte de control. Si en la sentencia SORT no especificamos el tipo de ordenamiento el mismo se harà por defecto en forma ascendente.
6 Se procede a recorrer la tabla interna TI_CLIENTES y es aquì dentro de este LOOP-ENDLOOP en donde se realiza el corazòn de la tècnica de control.
7 Dentro del loop se pasa el contenido de la estructura de trabajo WA_CLIENTES a WA_CLIENTES_AUX, esto es a la estructura o àrea de trabajo auxiliara.
Para realizar un corte de control, ABAP pone a nuestra disposiciòn dos sentencias que nos facilitan el trabajo como programadores: las sentencias AT NEW y AT END.
AT NEW campo se ejecuta por cada valor nuevo que se encuentre almacenado en el campo. Mira hacia atràs, comparando el contenido del campo del registro actual de la tabla interna que se procesa contra el contenido del campo del registro anterior de la tabla interna que se procesò.
a.- 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.
b.- 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.
Sentencia AT END OF: Se ejecuta cuando se està procesando el ùltimo registro que tenga almacenado un valor determinado de campo. Mira hacia adelante, compara el contenido del campo del registro actual de la tabla interna que se procesa contra el contenido del campo del registro siguiente de la tabla interna que todavìa no se procesò.
a.- Si el resultado de esa comparaciòn es que los contenidos de ambos campos son iguales no se ejecuta la lògica ABAP
b.- Si el resultado de esa comparaciòn es que los contenidos de ambos campos son diferentes entonces se ejecuta la lògica ABAP.
8 Una vez que se ejecutaron cada uno de los AT NEW fuera de ellos serà necesario sumarizar o acumular cada uno de los importes de las estructuras o campos auxiliares.
 
 
 
Sobre el autor
Publicación académica de Ariel Martucci, en su ámbito de estudios para la Carrera Consultor ABAP.
Ariel Martucci
Profesión: Contador Publico - Argentina - Legajo: PJ45S
✒️Autor de: 78 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Un contador público de mediana edad con ganas de seguir aprendiendo carreras nuevas. estudiante avanzado de inglés, preparando mi first certificate, y al mismo tiempo involucrándome en programación.
Certificación Académica de Ariel Martucci