🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP Los cortes de control utilizando tablas internas

ABAP Los cortes de control utilizando tablas internas

ABAP Los cortes de control utilizando tablas internas

Resumen

Unidad 3 lecció 2

Los cortes de control utilizando tablas internas.

1- Que es un corte de control?

Xa realizar los reportes vamos a trabajar con tablas internas, ya q de esta forma podemos almacenar, los registros q obtenemos de las tablas DB o cargar manual/ los registro q suger del procesamiento del programa y luego vamos a estructurar y formatear los datos q se muestran.

Cuando hablamos de estructurar y formatear nos referimos a:

== Organizar la salida de los datos en pantalla, dándoles un formato determinado.

== Ordenando el reporte a determinados campos

== Sumarizando campos

== Mostrando totales

== Entre otros. Todo esto se denomina cortes de control.

Corte de control => es una forma de estructurar un reporte de salida x pantalla de modo de poder sumarizar datos y mostrar totales, por distintos campos.

Ej corte de control: Supongamos q tenemos q generar un reporte de clientes x región y distrito, en donde se muestre x c/region x distrito, los clientes existentes junto con sus importes. También se desea mostrar el importe total x cliente, el importe total x distrito, y el importe total x región, luego de aplicar la técnica corte de control de salida por pantalla.

2- El paso a paso xa implementar un corte de control.

Toda técnica debe cumplir una serie de pasos y son:

Seguimos con el ej: Reporte de clientes región y distrito.

1ro declarar la tabla interna de salida del reporte. La particularidad q va a tener la tabla, es q esta compuesta x c/u de los campos q se desea incluir en el reporte de salida. y el orden en q se declaran los campos en q se declaran en la tabla interna, va hacer el mismo orden den el q se desea q esos campos se visualicen en pantalla.

Declaramos tabla interna ti_clientes y estructura o área de trabajo wa_clientes.

Como TYPES. (tipos)

TYPES: BEGIN OF ty_clientes,

region(10) TYPE c,

distrito(10) TYPE c,

nrocliente(5) TYPE c,

importe TYPE i,

END OF ty_clientes.

* tabla interna y estructura

DATA: ti_clientes TYPE STANDARD TABLE OF ty_clientes,

wa_clientes LIKE LINE OF ti_clientes.

* una particularidad de ABAP se declara una estructura auxiliar wa_clientes_aux.

DATA: wa_clientes_aux LIKE LINE OF ti_clientes.

x último declaramos un variable x c/u de los importes

DATA: w_importe_total_cliente TYPE i,

w_importe_total_distrito TYPE i,

w_importe_total_region TYPE i.

Borramos contenido de la tabla interna ==> REFRESH ti_clientes.

En el día a día del programador ABAP, se toma la tabla DB y luego realizar el procesamiento con ellos (datos) q sería la información precisa, con la cual se va a elaborar el reporte.

Luego ordenar la tabla interna x Región, distrito y cliente.

* ordenamos la tabla

SORT ti_clientes BY región distrito nrocliente.

A continuación recorrer la ti_clientes y es aquí dentro de este LOOP-ENDLOOP => se realiza el corazón de la técnica de corte de control.

dentro del LOOP => sumamente importante es PASAR el contenido de la estructura wa_clientes a wa_clientes_aux.

Recorremos la tabla interna

LOOP AT ti_clientes INTO wa_clientes.

*copiamos el contenido del registro a aun estructura wa_clientes_aux.

CLEAR wa_clientes_aux.

wa_clientes_aux = wa_clientes.

END LOOP.

Esto es lo importante de la técnica de corte de control

ABAP => Dos sentencias

AT NEW campo.

.....

ENDAT.

La sentencia AT NEW campo. se ejecuta x c/valor nuevo q se encuentre almacenado en campo.

La sentencia AT NEW campo mira hacia atrás, es decir compara el contenido del campo del registro actual de la tabla interna q se esta procesando contra el contenido del campo del registro anterior de la tabla interna q se proceso.

  • Si el resultado de esta comparación es q los contenido de ambos campos son DIFERENTES entonces se ejecuta la lógica ABAP q se encuentra dentro de AT NEW.
  • Si el resultado de los campos son iguales entonces NO se ejecuta la lógica.
  • Si estamos procesando el primer registro el campara el contenido del campo contra nada y aquí se ejecuta la logic de AT NEW.

Y la sentencia AT END OF campo.

....

ENDAT.

La sentencia AT END OF campo se ejectua cuando se esta procesando el último registro q tenga almacenado un vlr determinado en el campo.

Esta sentencia mira hacia adelante es decir compara el contenido del campo del registro actual de la tabla interna q se esta procesando contr el contenido del campo del registro sgnte de la tabla interna q todavi no se proceso.

  • Si el resultado de esta comparacion es q los contenidos de ambos campos son diferentes entonces se ejecuta la lógica ABAP q se encuentra dentro del AT END OF.
  • Si el resultado de ambos campos son iguales no se ejecuta esta lógica.
  • Si estamos procesando el último registro de la tabla interna entonces compara el contendio del campo contra nada y el resultado es distinto entonces se ejecuta la logica ABAP q se encuentra denro del AT END OF.

X c/nueva region vamos a ejecutar un AT NEIW REGION y aqui hacemos dos puntos q son:

== Inicializar las variables v_importe_total_region q sumara el importe x region.

== E imprimir la region q estamos procesando

* X c/nueva region

AT NEW region

CLEAR v_importe_total_region.

FORMAT COLOR 1.

WRITE:/ sy-uline(83).

WRITE:/ 'Region :', wa_clientes_aux.region.

WRITE:/ sy-unile(83).

ENDAT.

X c/nuevo distrito vamos a ejecutar un AT NEW distrito, aquí dentro vamos a hacer dos puntos fundamentales q son inicializar la variable v_importe_total_distrito q sumarice el importe x distrito e imprimir el distrito q estamos procesando.

* x c/nuevo distrito

AT NEW distrito

CLEAR v_importe_total_distrito.

FORMAT COLOR 5.

WRITE:/10 'Distrito:', wa_clientes_aux.distrito.

ENDAT.

X c/nuevo numero de cliente vamos ajecutar un AT NEW nrocliente y aqui dentro vamos a incializar la variable v_importe_total_cliente.

* x cada nuevo cliente

AT NEW nrocliente.

CLEAR v_importe_total_cliente.

ENDAT.

Una vez q se ejecutaron c/u de los AT NEW entonces fuera de ellas será necesario sumarizar o acumular c/u de los importes q mostraremos a continuación en el reporte.

ADD wa_clientes_aux-importe TO v_importe_total_cliente.

ADD wa_clientes_aux-importe TO v_importe_total_distrito.

ADD wa_clientes_aux-importe TO v_importe_total_region.

Vamos a imprimir el total de cliente hacer cuando se ejecute el ultimo registro correspondiente al numero de cliente q estamos procesando.

Sentencia AT END OF nrocliente, q en caso de ser el ultimo cliente se ejecutara la lógica q se encuentra dentro del AT END OF q consiste en imprimir en pantalla el numero del cliente y el importe total acumulado x cliente.

* imprimir total de cliente.

AT END OF nrocliente.

FORMAT COLOR 3.

WRITE:/ 30 'Cliente:', wa_clientes_aux-nrocliente.

50 'Importe total cliente:',v_importe_total_cliente.

ENDAT.

Luego vamos a imprimir el total x distrito. esto lo vamos hacer cuando se ejecute el ultimo registro correspondiente al distrito q estamos procesando.

* imprimir total distrito

AT END OF distrito

FORMAT COLOR 5.

WRITE:/10 'Importe total distrito ', v_importe_total_distrito.

ENDAT.

X ultimo hacemos lo mismo con la región.

Aquí ejecutamos la sentencia AT END OF región. en caso de ser la ultima región se ejecutará la lógica a se encuentre dentro del AT END OF. q consiste en imprimir el importe total acumulado x región.


 

 

 


Sobre el autor

Publicación académica de Gustavo Betancur Guzmán, en su ámbito de estudios para la Carrera Consultor ABAP.

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Los cortes de control utilizando tablas internas" de la mano de nuestros alumnos.

SAP SemiSenior

Cortes de control con tablas internas. Puedo realizar el corte segun el acumulado que desee realizar muy util. utilizando sentencias at.

Acceder a esta publicación

Creado y Compartido por: Christian Camilo Alzate Duque

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


LECCION 2. UNIDAD 3. CORTES DE CONTROL UTILIZANDO TABLAS INTERNAS. Abap cortes de control utilizando tablas internas: cuando se trabaja realizando reportes, se puede presentar la necesidad de ordenar la tabla interna de salida del reporte, de una determinada forma en donde se agrupen los datos a mostrar en la pantalla. Para realizar cortes de control se utilizan las sentencias que se relacionan a continuación: AT NEW: esta sentencia comparara el actual valor del campo con el valor anterior, en caso de ser distintos entonces se procesara el código dentro del AT NEW. AT END: esta sentencia comparara el actual valor del campo con el valor siguiente, es decir el que se encuentra en la proxima vuelta de la tabla interna. En caso de...

Acceder a esta publicación

Creado y Compartido por: Jose Dario Angel Vanegas

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


En ABAP, los cortes de control utilizando tablas internas son una técnica útil para organizar y resumir datos de manera jerárquica o agrupada. Los cortes de control permiten realizar cálculos o análisis específicos en grupos de datos y mostrar los resultados de manera estructurada. Esta técnica es comúnmente utilizada para generar informes o listados que presentan datos de manera organizada y resumida.Final del formulario Los cortes de control utilizando tablas internas en ABAP son una técnica poderosa para organizar y resumir datos de manera eficiente. Esta técnica permite generar informes y análisis más legibles y comprensibles, especialmente cuando se manejan...

Acceder a esta publicación

Creado y Compartido por: Darling Geraldino

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Cortes de control utilizando tablas internas. En este ejemplo ilustran la manera de hacer cortes de control los pasos a seguir son. 1. Cargar tabla interna con distintos registros. 2. Ordenar la tabla interna según orden que se quiere que se visualicen los datos. 3. Recorrer la tabla para realizar listado. 4. Dentro del LOOP se deben pasar los datos que se están recorriendo a una estructura auxiliar. 5. AT NEW compara los campos por los cuales se desea realizar el corte de control. 6. Se acumulan los valores por los cuales se quieren sumar, contar. 7. Para la impresión de los datos se utiliza la sentencia AT END seguida del campo por el cual se realiza el corte.

Acceder a esta publicación

Creado y Compartido por: Fabio Gallo

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

CORTES DE CONTROL UTILIZANDO TABLAS INTERNAS Estructura un reporte, de modo de poder sumarizar datos y mostrarlos por distintos campos del reporte, proceso. Cargar las tablas internas con distintos registros Ordenar las tablas Recorrer las tablas para visualizar el listado Para realizar el corte de control por cliente utilizamos las siguientes sentencias: AT NEW <campo>. Compara el actual numero del cliente con el anterior, si son distintos el codigo se procesa dentro del AT NEW AT END <campo>. Compara el actual numero del cliente con el siguiente, si son distintos se procesa el codigo dentro del AT END NOTA: Para sumarizar campos dentro del LOOP a la tabla interna del reporte utilizamos la sentencia ADD o...

Acceder a esta publicación

Creado y Compartido por: Ixhel Magai Lopez Valencia / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

video para crear cortes de control utilizndo tablas internas. con la sentencia AT NEW se realiza el corte de control.

Acceder a esta publicación

Creado y Compartido por: Rainer Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

1. CORTES DE CONTROL UTILIZANDO TABLAS INTERNAS EN REPORTES Un corte de control es una forma de estructurar un reporte de salida de modo que se puede sumar y mostrar datos totales por los distintos campos del reporte Condición Escencial: Primero deben ordenarse los campos por los cuales se hara el corte de control. Es indispensable, crear una estructura auxiliar para almacenar los datos del registro de la tabla interna del reporte ya que abap completa con (*) los campos que se encuentren a la derecha de los campos donde se hizo el corte y se perderá la información almacenada At new y At end

Acceder a esta publicación

Creado y Compartido por: Javier Mirabal

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Cortes de control en tablas internas Son agrupaciones en el procesamiento de las tablas internas, donde es necesario definir el orden para la generación de la salida esperada, para ello podemos utilizar las siguientes sintaxis: AT FIRST/ENDAT - Que realice el primer corte AT LAST/ENDAT - Que realice el corte al final del corte AT NEW/ENDAT - Que realice el corte cada vez que inicie un valor (valor que necesitemos diferenciar) AT END/ENDAT - Que realice el corte al final de un valor (valor que necesitemos diferenciar) al realizar el recorrido se debe asignar a una area de trabajo temporal, para evitar que se reemplace la información con asteriscos o bien utilizando FIELD-SYMBOLS.

Acceder a esta publicación

Creado y Compartido por: Marvin Raul Lopez Morales / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Unidad 3 - 2 - Cortes de control utilizando tablas internas en reportes. Los cortes de control son utilizados para la generacion e listados, utilizando la sentencia AT. **Antes de realizar el corto de control dentro de un loop. Debemos pasar los datos que se estan recorriendo a una estructura auxiliar.. Esto se debe a que ABAP complete con * todos los campos a la derecha del campo por el cual realizamos el corte.corte. AT NEW: INternamente compara el actual campo con el valr anterior. Si estos son disitntos entonces se preocesa el codigo que esta dentro del AT NEW. AT END: para realizar la impresion de los datos, utilizamos la sentencia AT END. Intermente compara el campo actual con el proximo, si estos son disitintos entonces se procesara...

Acceder a esta publicación

Creado y Compartido por: Matias Ciutat

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Cortes de control utilizando tablas internas en reportes. Veremos como realizar corte de control a una tabla interna para poder imprimir un listado por pantalla. una tabla interna con Registro de clientes que incluyen un importe entre los campos. Y queremos obtener un listado de clientes donde se muestre una solo linea el total por clientes. En este caso se realizaría un corte de control por cada nuevo cliente y un corte para imprimir los resultados. Cargar tabla de clientes con diferentes registros. Abap completa con asteriscos todos los campos a la derecha del campo por el cual hacemos el corte. Sentencia AT NEW= compara el actual numero de cliente con el anterior numero de cliente. en caso de ser distintos se procederá....

Acceder a esta publicación

Creado y Compartido por: Rafael Razo

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!