✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
Cortes de control en reportes:
un corte de control es una forma de estructura, un reporte de salida de modo de poder sumar datos y mostrar totales por distintos campos del reporte.
Para poder hacer este corte de control es necesario ordenar las tablas de salida por los campos por el cual se va a realizar el corte de control.
Se debe crear una estructura (wa) auxiliar para almacenar los datos de registro de la tabla interna del reporte, ya que ABAP completara con asterisco los campos que se encuentren a la derecha del campo por el cual realizamos el corte y se perdera la informacion almacenada en ellos.
Las sentencias que se utilizaran son las AT NEW y AT END
La sentencia AT NEW (nombre del campo), comparara el valor actual del campo con el valor anterior en caso de ser distinto se procesara el codigo dentro del AT NEW.
La sentencia AT END (nombre del campo) comparara el valor actual del campo con el valor siguiente es decir el que se encuentra en la proxima vuelta de la tabla interna en caso de ser distinto se procesara el codigo dentro del AT END
Para sumar campos dentro del LOOP a la tabla interna del reporte se puede utilizar la sentencia ADD o la sentencia SUM que se utiliza para sumar variables del tipo entero, p o flotante.
Se puede realizar un corte de control por mas de un campo, en ese caso se coloca en el AT NEW o en el AT END el campo que se encuentre mas a la derecha, por ejemplo
supongamos que tenemos nuestra tabla interna ti_tabla con los campos (campo1, campo2 y campo3) si quisieramos realizar un corte de control por campo3 solo colocariamos AT NEW campo3 o AT END campo3.
De interes, corte de control con dos campos
Tendrías que realizar los siguientes pasos:
Supongamos que la tabla interna se llama TI_CLIENTES.
1-Ordenas la tabla interna TI_CLIENTES por CLIENTE y CUENTA.
2-Recorres la tabla interna LOOP AT TI_CLIENTES INTO WA_CLIENTES.
3-Guardas en una estructura auxiliar WA_CLIENTES_AUX el contenido del registro que estas recorriendo y en adelante trabajas con esa estructura auxiliar WA_CLIENTES_AUX.
4-Realizas un AT NEW CLIENTE y dentro cada vez que cambia el CLIENTE borras la variable V_TOTAL_CLIENTE que es donde vamos a sumarizar el total por cliente.
5-Fuera del AT NEW CLIENTE sumamos el total de cliente ADD WA_CLIENTES-MONTOS TO V_TOTAL_CLIENTE.
6-Realizas un AT NEW CUENTA y dentro, cada vez que cambia la CUENTA borras la variable V_TOTAL_CUENTA que es donde vamos a sumarizar el total por cuenta.
7-Fuera del AT NEW CUENTA sumamos el total de la cuenta ADD WA_CLIENTES-MONTOS TO V_TOTAL_CUENTA.
8-Realizas un AT END CUENTA y dentro imprimis el nombre de la cuenta WA_CLIENTES-CUENTA y el total que esta almacenado en V_TOTAL_CUENTA.
9-Realizas un AT END CLIENTE y dentro imprimis el nombre de la cuenta WA_CLIENTES-CLIENTE y el total que esta almacenado en V_TOTAL_CLIENTE.
 
 
 
Sobre el autor
Publicación académica de Jesus Enrique Ramos Bello, en su ámbito de estudios para la Carrera Consultor ABAP.
Jesus Enrique Ramos Bello
Profesión: Soporte Ti - Venezuela - Legajo: LP44M
✒️Autor de: 114 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Me complace formar parte de este equipo y sé que cuento con la experiencia y los conocimientos técnicos necesarios para desarrollarme como programador abap...
Certificación Académica de Jesus Ramos