
Los cortes de control utilizando tablas internas
1 Qué es un corte de control
Un corte de control en ABAP es una técnica que permite agrupar y procesar datos similares dentro de una tabla interna ordenada, ejecutando determinadas acciones cuando el valor de un campo clave cambia.
Finalidad:
-
Es muy útil en la generación de reportes agrupados, por ejemplo, informes por cliente, por proveedor o por fecha.
-
Permite realizar subtotales, encabezados intermedios o contadores cada vez que el valor del campo de control cambia.
Funcionamiento:
Ejemplo clásico:
En un listado de proveedores ordenado por país, se puede generar un subtítulo o encabezado cada vez que cambia el país, gracias al uso de AT NEW PAIS.
2 El paso a paso para implementar un corte de control
Se deben seguir varios pasos ordenados que aseguren la organización de los datos y la lógica del reporte. A continuación se detallan:
1. Ordenar la tabla interna
Antes de implementar un corte de control, la tabla interna debe ser ordenada por el campo que se usará como criterio de agrupación.
SORT ti_proveedores BY pais.
2. Iniciar un bucle LOOP
Se recorre la tabla interna usando un LOOP AT, que permitirá identificar los momentos en los que cambian los valores del campo clave.
3. Utilizar eventos de corte de control
Durante el bucle, se definen bloques de control como:
-
AT NEW campo: se ejecuta al comenzar un nuevo grupo.
-
AT END OF campo: se ejecuta al terminar el grupo actual, útil para imprimir subtotales o líneas separadoras.
Esto permite insertar encabezados o líneas decorativas solo cuando cambia, por ejemplo, el país, proveedor, etc.
4. Procesar el contenido
Dentro del bucle principal, se colocan las instrucciones necesarias para mostrar el contenido de cada línea del grupo.
5. Cerrar el bucle
Finalizar con ENDLOOP una vez que todo el contenido haya sido procesado.