✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Diccionario de datos.
Video-Cortes de control utilizando tablas internas.
· AT NEW: compara actual del campo con anterior
· AT END : compara actual del campo con próximo
· AT FIRST: Se ejecuta cuando estamos leyendo el primer registro de la TI
· AT LAST: Se ejecuta cuando estamos leyendo el último registro de la TI
Qué es un corte de control:
reporte de salida donde sumariza datos y muestra totales.
VIDEO
En este video veremos como hacer un corte de control a una tabla interna para poder imprimir un listado por pantalla.
Supongamos que tenemos una tabla interna con registros de clientes que incluyen un importe entre sus campos y queremos obtener un listado de clientes donde se muestre en una sola línea el total por clientes. En este caso tendríamos que realizar un corte de control por cada nuevo cliente y otro corte para imprimir los resultados.
- Lo primero que hacemos es cargar la tabla interna de clientes con distintos registros.
- Luego debemos ordenar la tabla interna de clientes según el orden en el que queremos que se visualicen los datos.
- Ahora recorremos la tabla para realizar el listado.
- Antes de realizar el corte de control dentro del LOOP, debemos pasar los datos que se están recorriendo a una estructura auxiliar, esto se debe a que ABAP completa con asteriscos todos los campos a la derecha del campo por el cual hacemos el corte.
- Para realizar el corte de control por cliente vamos a utilizar la sentencia AT NEW seguida del campo numero del cliente. Internamente la sentencia AT NEW compara el actual número de cliente con el anterior número de cliente, si estos son distintos entonces se procesará el código que esta dentro del AT NEW.
- Luego como lo que queremos es imprimir por pantalla el total por cliente acumulamos el importe.
- Para realizar la impresión de los datos utilizamos la sentencia AT END seguida del campo por el cual hacemos el corte, internamente la sentencia AT END compara el actual número de cliente con el próximo número de clientes, si estos son distintos entonces se procesará el código que esta dentro del AT END.
- Ejecutamos el programa. Finalmente vemos el listado ordenado por cliente donde se muestra el total acumulado para cada uno de ellos.
Vamos a remarcar los conceptos más importantes a tener en cuenta de los cortes de control.
Un corte de control es una forma de estructura, un reporte de salida, de modo de poder sumarizar datos y mostrar totales por distintos campos del reporte. Una condición esencial que presentan los cortes de control es que la tabla de salida del reporte 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 del reporte ya que ABAP completará con asteriscos los campos que se encuentren a la derecha del campo por el cual realizamos el corte y se perderá la información almacenada en ellos. Principalmente vamos a utilizar las sentencias AT NEW y AT END.
La sentencia AT NEW campo, comparará el valor actual del campo con el valor anterior, en caso de ser distintos entonces se procesará el código dentro del AT NEW.
La sentencia AT END campo comparará el valor actual del campo con el valor siguiente, es decir, el que se encuentra en la próxima vuelta de la tabla interna, en caso de ser distintos entonces se procesará el código dentro del AT END.
Para sumar campos dentro del LOOP de la tabla interna del reporte, podemos utilizar la sentencia ADD o también la sentencia SUM, que se utiliza para sumarisar variables del tipo integer, p o float.
Es posible realizar un corte de control por más de un campo en ese caso colocaremos en el AT NEW o en el AT END el campo que se encuentre más a la derecha.
Por ejemplo supongamos que tenemos nuestra tabla interna ti_tabla con los campos campo1, campo2 y campo3 en ese orden. Si quisiéramos realizar un corte de control por campo3 sólo colocaríamos AT NEW campo3 o AT END campo3
También existen las sentencias AT FIRST y AT LAST que no se utilizan muy a menudo pero que nos pueden ayudar en un requerimiento muy especifico.
 
 
 
#1 / 15 de Oct de 2018 / Ninoska Marquez: |
Sobre el autor
Publicación académica de Felipe Estepa Quintero, en su ámbito de estudios para la Carrera Consultor ABAP.
Felipe Estepa Quintero
Profesión: Tecnologo en Gestion Logistica - Colombia - Legajo: QH16V
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Felipe Estepa