✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Es una forma de estructurar un reporte de salida por pantalla, que permite sumarizar datos y mostrar totales por distintos campos de reporte.
Vamos a hacer el paso a paso para implementar un corte de control.
1. Tenemos una tabla interna con una área de trabajo.
TYPES: BEGIN OF ty_clientes,
región(10) TYPE c,
distrito(10) TYPE c,
nrocliente(5) TYPE c,
importe TYPE i,
END OF ty_clientes.
DATA: ti_clientes TYPE STANDAR TABLE OF ty_clientes,
wa_clientes LIKE LINE OF ti_clientes.
2. Por particularidad de abap se requiere declarar una estructura auxiliar.
DATA: wa_clientes_aux LIKE LINE OF ti_clientes.
3. Se declara una variable tipo i para cada uno de los importes que deseamos sumarizar.
DATA: v_importe_total_cliente TYPE i,
v_importe_total_distrito TYPE i,
v_importe_total_region TYPE i.
4. Limpiar las tablas con REFRES y CLEAN y posteriormente ingresar la información. Auqneu por lo general las tablas internas son el resultado de seleccionar registros de datos de diferentes tablas de la base de datos y luego procesar datos con el fin de quedarnos con cierta información.
5. Se procede con ordenar el tabla interna por los campos de los cuales se va realizar el corte de control.
SORT ti_clientes BY regio distrito nroclientes.
6. Se recorre la tabla interna con LOOP-ENDLOOP y pasamos el contenido de la estructura o área de trabajo a la estructura auxiliar.
LOOP AT ti_clientes INTO wa_clientes.
CLEAR wa_clientes_aux.
wa_clientes_aux = wa_clientes.
7. La sentencia AT NEW:
AT NEW campo.
....
ENDAT.
Se ejecuta por cada valor nuevo que se almacene en campo, aquí se mira hacía atrás, comparando el contenido del campo actual de la tabla interna que se esta procesando contra el contenido del campo del registro anterior de la tabla interna que se procesó.
*Sí el resultado es que los contenido son diferentes se ejecutará la lógica ABAP dentro del AT NEW.
*Sí el resultado es que ambos campos son iguales entonces NO se ejecuta la lógica ABAP dentro del AT NEW.
*Sí se compara contra nada, encontrará que son diferentes y por lo tanto se ejecutará la lógica ABAP dentro del AT NEW.
8. La sentencia AT END OF:
AT END OF campo.
....
ENDAT.
Se ejecuta cuando se está procesando el último registro que tenga almacenado un valor determinado de campo, aquí se mira hacía adelante, comparando el contenido del campo actual de la tabla interna que se esta procesando contra el contenido del campo del registro siguiente de la tabla interna que aún no se procesó.
*Sí el resultado es que los contenido son diferentes se ejecutará la lógica ABAP dentro del AT END OF.
*Sí el resultado es que ambos campos son iguales entonces NO se ejecuta la lógica ABAP dentro del AT END OF.
*Sí se compara contra nada, encontrará que son diferentes y por lo tanto se ejecutará la lógica ABAP dentro del AT END OF.
9. Procedemos a inicializar las variables y a imprimir el campo que estamos procesando así:
AT NEW region.
CLEAR v_importe_total_región.
FORMAT COLOR 1.
WRITE:/ sy-uline(83).
WRITE:/ 'Región:', wa_clientes_aux-region.
WRITE:/ sy-uline(83).
ENDAT.
AT NEW distrito.
CLEAR v_importe_total_distrito.
FORMAT COLOR 5.
WRITE:/10 'Distrito:', wa_clientes_aux-region.
ENDAT.
10. Una vez ejecutados los AT NEW entonces fuera de ellos será necesario sumarizar o acumular cada uno de los importar que mostraremos a continuación en el reporte así:
ADD wa_clientes_aux-importe TO v_importe_total_cliente.
ADD wa_clientes_aux-importe TO v_importe_total_distrito.
ADD wa_clientes_aux-importe TO v_importe_total_región.
11. Se procedes a escribir el total de las variables, una vez se halla ejecutado el último delos registros. Así:
AT END OF nrocliente.
FORMAT COLOR 3.
WRITE:/30 'Cliente:', wa_clientes_aux-nrocliente.
50 'Importe Total Cliente:', v_importe_total_cliente.
ENDAT.
AT END OF distrito.
FORMAT COLOR 5.
WRITE:/10 'Importe Total Distrito:', v_importe_total_distrito.
ENDAT.
Preguntas ¿Para qué es o qué significa "WRITE:/ sy-uline(83)."?
 
 
 
Sobre el autor
Publicación académica de Linda Carolina Zambrano León, en su ámbito de estudios para la Carrera Consultor ABAP.
Linda Carolina Zambrano León
Profesión: Agente - Peru - Legajo: XR55P
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Linda Zambrano