✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
- CORTES DE CONTROL USANDO TABLAS INTERNAS EN REPORTES
Sentencia AT, simplifica mucho la tarea del programador en la generación de reportes. Usado para sumar datos y mostrar totales por distintos datos del reporte.
Dentro de un bucle, si metemos la sentencia AT NEW <campo> ... ENDAT. (compara el registro actual con el anterior) al detectar un registro con un nuevo valor en el campo que indiquemos ejecutará las instrucciones que tengamos dentro. Con AT END OF <campo> ... ENDAT. (compara el registro actual con el siguiente) ejecutará las instrucciones que tengamos dentro cuando estemos tratando el último registro antes del corte (el corte lo produce un cambio en el valor del campo definido).
Por ej/ Tenemos una tabla de facturas de clientes y queremos imprimir el total del importe por clientes. Para las facturas de clientes, con un SORT ordenamos la tabla interna por clientes, metemos un bucle que recorra todas esas facturas, con la instrucción "AT NEW nombre_cliente." cada vez que detecta un nuevo cliente inicializamos (CLEAR) la variable donde acumulamos el importe total. Para realizar la impresión usamos AT END OF nombre_cliente, al detectar el último registro de un nombre de cliente se realizará la impresión de su importe.
* Ordeno la tabla interna SORT ti_clientes BY nrocli region distrito cuenta concepto. * Recorro la tabla interna LOOP AT ti_clientes INTO st_clientes. * Copio el contenido del registro a una estructura auxiliar CLEAR st_clientes_aux. st_clientes_aux = st_clientes. * Por cada nuevo cliente AT NEW nrocli. CLEAR v_importe_acumulado. FORMAT COLOR 1. WRITE:/ 'Cliente:', st_clientes_aux-nrocli. ENDAT. * Acumulo el importe ADD st_clientes_aux-importe TO v_importe_acumulado. AT END OF nrocli. * Imprimo titulos de los detalles FORMAT COLOR 1. WRITE:/10 'Region', 20 'Distrito', 30 'Cuenta', 45 'Concepto', 55 'Importe Total'. WRITE: /10 st_clientes_aux-region, 20 st_clientes_aux-distrito, 30 st_clientes_aux-cuenta, 45 st_clientes_aux-concepto, 55 v_importe_acumulado. WRITE:/ sy-uline. ENDAT. ENDLOOP. Otras sentencias, AT FIRST ... ENDAT., AT_LAST ... ENDAT.
 
 
 
Sobre el autor
Publicación académica de Ignacio Mart?n Bolumar, en su ámbito de estudios para la Carrera Consultor ABAP.
Ignacio Mart?n Bolumar
Profesión: Ingeniero Inform?tico - Espa?a - Legajo: ZL84Z
✒️Autor de: 94 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Ignacio Mart?n