✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Corte Control: Manera de estructurar un reporte de salida para poder visualizar datos acumulados de distintos campos del reporte. La tabla de salida debe ordenarse por los campos por los cuales se va a realizar el corte de control. Es indispensable utilizar una estructura auxiliar para almacenar los datos del registro de la tabla interna.
ADD NEW: compara el valor actual del campo con el valor anterior, en caso de ser diferentes se procesará las instrucciones que se encuentren dentro.
AT END OF: compara el valor actual del campo con el valor siguiente, en caso de ser diferentes se procesará las instrucciones que se encuentren dentro.
Es posible realizar un campo de control por mas de un campo. En el ADD NEW o AT END se coloca el campo que se encuentra más a la derecha.
*&---------------------------------------------------------------------* *& Report Z_PRUEBA_ABAP_3_3 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT z_prueba_abap_3_3. * Tipo de la estructura de clientes TYPES: BEGIN OF ty_clientes, nrocli(5) TYPE c, region(4) TYPE c, distrito(3) TYPE c, cuenta(5) TYPE c, concepto(30) TYPE c, importe TYPE i, END OF ty_clientes. * Tablas internas y estructuras DATA: ti_clientes TYPE STANDARD TABLE OF ty_clientes, st_clientes LIKE LINE OF ti_clientes, st_clientes_aux LIKE LINE OF ti_clientes. * Flag DATA: v_importe_acumulado TYPE i. *----------------------------------------------------------------------* START-OF-SELECTION. *----------------------------------------------------------------------* * 1 st_clientes-nrocli = '00001'. st_clientes-region = 'RECA'. st_clientes-distrito = '202'. st_clientes-cuenta = '47100'. st_clientes-concepto = 'IVA100%'. st_clientes-importe = 30. INSERT st_clientes INTO TABLE ti_clientes. * 2 st_clientes-nrocli = '00005'. st_clientes-region = 'RECA'. st_clientes-distrito = '202'. st_clientes-cuenta = '47100'. st_clientes-concepto = 'RECARGOS NPRIV'. st_clientes-importe = 90. INSERT st_clientes INTO TABLE ti_clientes. * 3* st_clientes-nrocli = '00012'. st_clientes-region = 'RECA'. st_clientes-distrito = '202'. st_clientes-cuenta = '47100'. st_clientes-concepto = 'IVA21%'. st_clientes-importe = 20. INSERT st_clientes INTO TABLE ti_clientes. * 4 st_clientes-nrocli = '00012'. st_clientes-region = 'RECA'. st_clientes-distrito = '202'. st_clientes-cuenta = '47100'. st_clientes-concepto = 'IVA21%'. st_clientes-importe = 40. INSERT st_clientes INTO TABLE ti_clientes. * 5 st_clientes-nrocli = '00005'. st_clientes-region = 'RECA'. st_clientes-distrito = '202'. st_clientes-cuenta = '47100'. st_clientes-concepto = 'RECARGOS NPRIV'. st_clientes-importe = 30. INSERT st_clientes INTO TABLE ti_clientes. * 6 st_clientes-nrocli = '00001'. st_clientes-region = 'RECA'. st_clientes-distrito = '202'. st_clientes-cuenta = '47100'. st_clientes-concepto = 'IVA100%'. st_clientes-importe = 10. INSERT st_clientes INTO TABLE ti_clientes. * 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. 
 
 
Sobre el autor
Publicación académica de Alberth Julian Bolanos Bravo, en su ámbito de estudios para la Carrera Consultor ABAP.
Alberth Julian Bolanos Bravo
Profesión: Analista de Sistemas Web - Colombia - Legajo: FC65L
✒️Autor de: 46 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alberth Bolanos