✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Lección 2
Vídeo - Cortes de control utilizando tablas internas
Cortes de control utilizando tablas internas en reportes
A continuación veremos un vídeo donde exponemos un tema muy importante como es el de los cortes de control para la generación de listados, utilizando la sentencia AT. Esta forma de trabajo, que a simple vista parece complicada, es muy simple de utilizar y simplifica mucho la tarea del programador en la generación de reportes.
¿Cómo realizar un corte de control a una tabla interna para poder imprimir un listado por pantalla?
Se tiene una tabla interna con registros de clientes que incluye un importe entre sus campos y queremos obtener un listado de clientes donde se muestre en una sola linea 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 se debe realizar es cargar la tabla interna de clientes con distintos registros (realizar un llenado). Luego se debe ordenar la tabla interna de clientes según el orden en el que queremos que se visualicen los datos. Luego se recorre 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 número de 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 está 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 cliente. Si estos son distintos, entonces se procesará el código que está dentro del AT END. Luego ejecutamos el programa donde se muestra el total de clientes con el acumulado para cada uno de ellos.
AUDIO TIPS: Conoceptos más importantes para tener en cuenta de los cortes de control. Un corte de control es una forma de estructurar 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 los cortes de control. Es indispensable utilizar una estructura auxiliar para almacenar los datos de 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 ello. Principalmente vamos a utilizar la sentencia 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 actual valor 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 a la tabla interna del reporte, podemos utilizar la sentencia AT o también la sentencia SUM que se utilizar para sumalizar variables de 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 quisieramos realizar un corte de control por campo3, solo colocariamos AT NEW campo3 o AT END campo3. También existen las sentencias AT FER y AT LASH que no se utilizan muy a menudo pero que nos pueden ayudar en un requerimiento muy específico.
SUMARIZACIÓN: La sumarización o agregación muestra los datos de una manera más resumida, permitiendo, precisamente, calcular valores agregados, que no son los datos directos registrados, sino datos derivados de ellos. Se puede considerar, en cierto modo, una generalización de los datos y, por tanto, suele facilitar el aprendizaje. Pero no es sólo una cuestión de eficiencia, sino, muchas veces, una necesidad. En la mayoría de eventos físicos, cuando más se detallan los datos menos patrones suelen encontrarse.
 
 
 
Sobre el autor
Publicación académica de Freddy Enrique Sierra Yepez, en su ámbito de estudios para la Carrera Consultor ABAP.
Freddy Enrique Sierra Yepez
Profesión: Ingeniero de Sistemas - Colombia - Legajo: PA44Z
✒️Autor de: 68 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Freddy Sierra