✒️ABAP Los cortes de control utilizando tablas internas
ABAP Los cortes de control utilizando tablas internas
1. Que es un corte de control?
Tal como vimos una de las tareas que mas vamos a realizar es la confeccion de reportes de salida por pantalla.
Para realizar estos reportes vamos a trabajar con tablas internas ya que poddmos almacenar los registros que obtenemos de las tablas base de datos o cargar manualmente los datos.
cuando hablamos de estructurar y formatear nos referimos a: organizar la salida de los datos por pantalla danoles un formato determinado.
Para realizar esto utilizamos el Corte de control: que es una forma de estructurar un reporte de salida por pantalla de modo de poder sumarizar datos y mostrar totales por distintos campos de reporte.
2. El paso a paso para implementar un corte de control
Los cortes de control en definitiva son una tecnica y como toda tecnica se encuentra compuesta de una serie de pasos que deben seguir para que funcione correctamente.
Ejemplo: usaremos el Reporte de clientes por Region y distrito.
Tabla interna de salida: ti_clientes y la estructure o area de trabajo wa_clientes
Por una particularidad de ABAP vamos a necesitar declarar siempre una estructura auxiliar cuyo nombre sera wa_clientes_aux a parte de la que ya declaramos.
por ultoimo vamos a declarar la variable de tipo I para cada uno de los importes que deseamos sumar. es decir, variables: v_importe_total_region, v_importe_total_distrito y v_importe_total_cliente
Luego de declara las vatiables vamos a borrar el contenido de la tabla interna ti_clientes. Es considerado una buena practica en programacion.
a continuacion vamos a llenar la tabla interna ti_clientes.
Luego vamos a ordenar la tabla interna ti_clientes por los campos por lo cuales se va a realizar el corte de control.
A continuacion vamos a recorrer la table interna y es aqui dentro de este LOOP-ENDLOOP es donde se realiza el corazon de la tecnica de corte de control.
Una vez dentro del LOOP lo promero que vamos a hacer y que es sumamente importante es pasar el contenido de la estructura wa_clientes a wa_clientes_aux.
ahora viene la parte mas importate de la tecnic de corte. La sentencia AT NEW.
La sentencia AT NEW campo se ejecuta por cada valor nuevo que se encuentre almacenado en el campo.
Esta sentencia compara el contenido del campo del registro actual de la tabla interna.
- Si el resultado de esa comparacion es que los contenidos de ambos campos son diferentes entonces se ejecuta la logica ABAP que se encuentra dentro del AT new.
- Si el resultado de esa comparacion es que los contenidos de ambos campos son iguales entonces no se ejecuta la logica 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 es que son distintos por lo que se ejecuta la logica ABAP que se encuentra dentro del AT END of.
Por cada nueva region vamos a ejecutar un AT NEW REGION y dentro vamos a hacer 2 puntos fundamentales que inician la variable V_importe:total:region que sumariza el importe por region
Por cada nuevo distrito vamos a ejecutar AT NEW DISTRITO y dentro vamos a hacer 2 puntos fundamenteales que son inicializar la variable V_importe_total_distrito que sumariza el importe por distrito
por cada nuevo numero de clientes vamos a ejecutar at new nrocliente y vamos a iniciar la variable v_importe:total¿_ cliente
luego vamos a imprimir el total por cliente para ello vamos a ejecutar la sentencia AT END OF NROCLIENTE y el AT END OF
 
 
 
Sobre el autor
Publicación académica de Lucas Mera, en su ámbito de estudios para la Carrera Consultor ABAP.
Lucas Mera
Profesión: Analista de Sisemas - Argentina - Legajo: SW47M
✒️Autor de: 28 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Profesional con sólida experiencia en el liderazgo, comunicación, gestión negocio y desarrollado en empresas internacionales de gran envergadura.certificado en itil v.3 y scrum master.
Certificación Académica de Lucas Mera