![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
![ABAP Los cortes de control utilizando tablas internas ABAP Los cortes de control utilizando tablas internas](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/464.jpg)
UNIDAD 3: DICCIONARIO DE DATOS
TEMA 2: LOS CORTES DE CONTROL UTILIZANDO TABLAS INTERNAS
A.- QUE ES UN CORTE DE CONTROL?
· CORTES DE CONTROL:
>> Es una forma de estructurar un reporte de salida por pantalla.
>> Tiene el objetivo de sumarizar datos y mostrar totales por distintos campos del reporte.
· Se trabajará con Tablas Internas para realizar reportes.
· Con la ayuda de las TI’s se podrá almacenar los registros en la TBD (Tabla Base de Datos).
· Al estructurar y formatear los datos significa:
>> Se organizará la salida de los datos en la pantalla.
>> Se agruparán los campos de salida.
>> Se ordenará el reporte por determinados campos.
>> Se sumarizaran campos.
>> Se mostrarán totales por distintos campos.
B.- EL PASO A PASO PARA IMPLEMENTAR UN CORTE DE CONTROL
· Los cortes de control es una técnica que se encuentra compuesta por pasos.
· PASO 1: Declarar la tabla interna de salida del reporte.
>> La tabla debe estar compuesta por cada uno de los campos que se desee incluir en el reporte de salida.
>> En la tabla se debe ordenar los campos, este orden será según como se desee que se visualicen en la pantalla.
· PASO 2: Declarar una estructura auxiliar
>> Por una particularidad de ABAP se necesita declarar siempre una estructura auxiliar, esta estructura es una aparte de la que ya emos creado.
· PASO 3: Declarar una variable de tipo I
>> Se declarará una variable de tipo I para cada uno de los importes que deseemos sumarizar.
· PASO 4: Borrar y llenar el contenido de la tabla interna
>> PASO 4.1:
>>>> Este paso es considerado una buena practica de programación.
>>>> Ejecutaremos la sentencia REFRESH a la tabla interna para limpiar de cualquier tipo de basura que este presente en la memoria.
>> PASO 4.2:
>>>> Para ello vamos a cargar cada uno de los registros de datos de la TI.
>>>> Completaremos el contenido de la tabla interna registro a registro.
>> AMBITO REAL DEL PROGRAMADOR:
>>>> Se seleccionara los registros de datos de diferentes TBD, luego se realizara el procesamiento para luego quedarnos con cierta información precisa.
>>>> En otras palabras, se llenara el contenido de la tabla interna de salida por pantalla.
· PASO 5: Ordenar la tabla interna
>> El orden se realizará por los campos por los cuales se va a realizar el corte de control.
>> Ejecutemos por la sentencia SORT.
>> Si no especificamos el ordenamiento entonces por defecto se realizar en forma ascendente.
· PASO 6: Recorrer la tabla interna
>> Debemos ingresar al LOOP-ENDLOOP
>> Es aquí que se realiza el corazón de la técnica de corte de control.
>> Lo primero que debemos hacer es pasar el contenido de la estructura o área de trabajo.
· PASO 7: Corte de control
>> Es la parte importante de la técnica de corte de control.
>> Tenemos disponibles dos sentencias:
1.- Sentencia AT NEW:
>> Sintaxis:
AT NEW campo.
…
ENDAT.
>> Sentencia AT NEW campo:
>>>> Se ejecutará por cada valor nuevo que se encuentre en el campo.
>>>> Compara el contenido del campo del registro actual contra el contenido del campo de registro anterior dentro de una tabla interna que se procesó:
>>>>>> 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 del AT NEW.
>>>>>> 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.
>>>>>> Si estamos procesando el primer registro de la tabla interna entonces compara el contenido del campo contra nada y el resultado de esa comparación es que son distintos por lo que se ejecuta la lógica ABAP que se encuentra dentro del AT NEW.
2.- Sentencia AT END OF:
>> Sintaxis:
AT END OF campo.
…
ENDAT.
>> Sentencia AT END OF campo:
>>>> Se ejecuta cuando se esta procesando el ultimo registro que tenga almacenado un valor determinado de campo.
>>>> Compara el contenido del campo del registro actual en proceso contra el contenido del campo de registro siguiente que no se proceso todo esto dentro de una Tabla interna.
>>>>>> Si el resultado de esa comparación es que los contenidos de ambos campos son diferentes entonces se ejecuta la ABAP que esta dentro del AT END OF.
>>>>>> Si el resultado de esa comparación es que lo contenidos de ambos campos son iguales entonces no se ejecutara la lógica ABAP que se encuentra dentro del AT END OF.
>>>>>> Si estamos procesando el ultimo registro de la tabla interna entonces compara el contenido del campo contra nada y el resultado de esa comparación es que son distintos por lo que se ejecuta la lógica ABAP que se encuentra dentro del AT END OF.
· PASO 8: Inicializar e Imprimir
>> Dentro de la ejecución de la sentencia AT NEW
>> Se realizará la inicialización de la variable que luego se sumarizara su importe.
>> Finalmente se imprimirá.
· PASO 9: Si es que hay nuevo cliente
>> Para un nuevo cliente se ejecutara con la sentencia AT NEW NROCLIENTE.
>> Dentro de la ejecución inicializaremos la variable V_IMPORTE_TOTAL_CLIENTE.
· PASO 10: Sumarizar los importes
>> luego de ejecutar los AT NEW, es necesario sumarizar cada uno de lo importes que se mostrara en el reporte.
· PASO 11: AT END OF NROCLIENTE
>> Esperar la ejecución del ultimo registro correspondiente.
>> Se ejecutará con la sentencia AT END OF NROCLIENTE
>> AT END OF: consiste en imprimir en pantalla el número de cliente y el importe total acumulado.
 
 
 
Sobre el autor
Publicación académica de Víctor Alberto Saccaco Maldonado, en su ámbito de estudios para la Carrera Consultor ABAP.
Víctor Alberto Saccaco Maldonado
Profesión: Consultor Abap - Peru - Legajo: RD90F
✒️Autor de: 25 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Presentación:
Consultor abap junior, con experiencia en módulos sd, mm.
Certificación Académica de Víctor Saccaco