✒️ABAP / El ALV jerárquico y el agrupamiento Por Mayra Pino Rodriguez

ABAP El ALV jerárquico y el agrupamiento

ABAP El ALV jerárquico y el agrupamiento

ALV JERARQUICO Y AGRUPAMIENTO

1. AGRUPAMIENTO EN UN ALV

Para ello, declaremos una tabla del tipo SLIS_T_SORTINFO_ALV y una estructura del tipo SLIS_SORTINFO_ALV.

Ej: Tabla y estructura necesarias para agrupar el ALV

* Tabla y estructura para ordenamiento

ti_sort TYPE slis_t_sortinfo_alv,

st_sort TYPE slis_sortinfo_alv,

Luego antes de llamar a la función ALV, vamos a cargar la tabla TI_SORT con los registros en el orden en el q deseamos agrupar.

Ej: Cargamos la tabla interna de agrupamiento del ALV

CLEAR st_sort.

st_sort-spos = 1. " Orden del agrupamiento

st_sport-fieldname = 'ESTADO CIVIL'. " Nombre del campo q agrupa

APPEND st_sort TO ti_sort.

Ahora demos completar el parámetro exporting IT_SORT con nuestra tabla interna TI_SORT.

Ej: Completamos el parámetro exporting IT_SORT

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY

EXPORTING

i_callback_program = v_repid

i_callback_pf_status_set = 'PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = ti_catalogo[]

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout = st_layout

it_sort = ti_sort

TABLES

t_outtab = ti_usuarios.

Si se ejecuta el reporte, se verá la agrupación por Estado Civil.

2. ALV JERARQUICO

Los ALV Jerárquicos se utilizan cdo tenemos q mostrar en un reporte, datos de cabecera y de posición. En las declaraciones de las tablas internas de cabeceras y posiciones, debe haber como mínimo un campo en común.

En este caso el campo común es el CARRID q es la compañía aérea.

Ej: Tablas internas q vamos a utilizar en el ALV Jerárquico.

* Tabla interna de la cabecera

DATA: BEGIN OF ti_cabecera OCCURS 0,

carrid LIKE scarr-carrid,

carrname LIKE scarr-carrname,

END OF ti_cabecera.

* Tabla interna de posiciones

DATA: BEGIN OF ti_detalle OCCURS 0,

carrid LIKE sflight-carrid,

connid LIKE sflight-connid,

fldate LIKE sflight-fldate,

price LIKE sflight-price,

currency LIKE sflight-currency,

planetype LIKE sflight-planetype,

END OF ti_detalle.

Debemos declarar una estructura del tipo SLIS_KEYINFO_ALV q será ST_KEYINFO y contendrá el campo clave q une a las dos tablas internas.

Ej: Estructura q almacena el campo clave de unión

* Campo Clave

st_keyinfo TYPE slis_keyinfo_alv.

Ahora vamos a cargar las tablas internas de cabeceras y detalle con un juego de datos para la compañía aérea ARG. También cargamos un juego de datos para la compañía aérea LAN.

Ej: Cargamos las tablas internas del ALV Jerárquico

* CABECERA 1

ti_cabecera-carrid = 'ARG'.

ti_cabecera-carrname = 'Aerolineas Argentinas'.

APPEND ti_cabecera.

* DETALLE 1

ti_detalle-carrid = 'ARG'.

ti_detalle-connid = '1010'.

ti_detalle-fldate = '20091111'.

ti_detalle-price = '380'.

ti_detalle-currency = 'USD'.

ti_detalle-planetype = 'A310'.

APPEND ti_detalle.

* DETALLE 2

ti_detalle-carrid = 'ARG'.

ti_detalle-connid = '1020'.

ti_detalle-fldate = '20091011'.

ti_detalle-price = '300'.

ti_detalle-currency = 'USD'.

ti_detalle-planetype = 'A330'.

APPEND ti_detalle.

Luego crearemos el catálogo del ALV para ambas tablas internas, sumando los campos de ambas tablas en la tabla del catálogo TI_CATALOGO.

Ej: Completamos el catálogo en forma automática para ambas tablas internas

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'TI_CABECERA'

i_client_never_display = 'X'

i_inclname = sy-repid

CHANGING

ct_fieldcat = ti_catalogo[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'TI_DETALLE'

i_client_never_display = 'X'

i_inclname = sy-repid

CHANGING

ct_fieldcat = ti_catalogo[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

Ahora tenemos q completar la estructura ST_KEYINFO. En los campos HEADER01 y ITEM01 va a ir el campo de la tabla de cabecera q hace de vínculo con la tabla de detalles.

Ej: Completamos el campo clave de unión

CLEAR st_keyinfo.

st_keyinfo-header01 = 'CARRID'.

st_keyinfo-item01 = 'CARRID'.

Por último, ejecutamos la función REUSE_ALV_HIERSEQ_LIST_DISPLAY.

Ej: La función REUSE_ALV_HIERSEQ_LIST_DISPLAY

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_pf_status_set = 'PF_STATUS'

it_fieldcat = ti_catalogo[]

i_tabname_header = 'TI_CABECERA'

i_tabname_item = 'TI_DETALLE'

is_keyinfo = st_keyinfo

TABLES

t_outtab_header = ti_cabecera

t_outtab_item = ti_detalle

EXCEPTIONS

program_error = 1

OTHERS = 2.

En un ALV Jerárquico no es posible utilizar el evento TOP-OF-PAGE por lo q no será posible generar una cabecera con títulos y logos tal como lo hemos hecho en los ALV de tipo Grilla.

Otra limitación es q en ellos no se puede utilizar el botón de exportación de datos a Excel debido a la diferencia q existe entre el formato de la cabecera y el formato de cada registro.


 

 

 


Sobre el autor

Publicación académica de Mayra Maria Pino Rodriguez, en su ámbito de estudios para el Curso ABAP.

SAP Senior

Mayra Maria Pino Rodriguez

Profesión: Licenciada Cibernética Matemática - Republica Dominicana - Legajo: RA62Z

✒️Autor de: 56 Publicaciones Académicas

🎓Egresado del módulo:

Certificación Académica de Mayra Pino

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El ALV jerárquico y el agrupamiento" de la mano de nuestros alumnos.

SAP Senior

Agrupar datos en un ALV: · Para que los registros se junten por un campo común, mostrando un subtítulo y hasta un subtotal. · Ejemplo: Agrupar todas las ventas por "Vendedor". · ¿Cómo? 1. Declaro una tabla para el ordenamiento: it_sort TYPE SLIS_T_SORTINFO_ALV. 2. La lleno diciendo por qué campo quiero agrupar: wa_sort-fieldname = 'VENDEDOR'. 3. Se la paso a la función ALV con el parámetro it_sort = it_sort[]. ALV Jerárquico: · Especial para datos que tienen una relación maestro-detalle (cabecera-posición). · Ejemplo: Una orden de compra (cabecera) y sus items (detalle). · Necesito dos tablas internas: una para...

Acceder a esta publicación

Creado y Compartido por: Mara Fadua Romero Hernandez

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

SAP Master


El ALV jerárquico y le agrupamiento en reportes ALV Se pueden agrupar registros en un reporte ALV mostrando registros que comparten el mismo valor en un campo de manera agrupada. Es necesario declarar la tabla interna TISort (tipo SListTSortInfoALV) y la estructura WASort (tipo SListSortInfoALV). Dentro del evento StartOfSelection y la subrutina AgruparCampos, se cargan los registros en TISort según el orden de agrupamiento deseado. Es posible agrupar por varios campos incluidos en la tabla interna de salida del ALV, solo agregándolos en TISort. En los módulos de funciones ReduceALVGridDisplay y ReduceALVListDisplay, se debe pasar TISort como parámetro Exporting y TSort. Al ejecutar...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

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

SAP Master

Introducción: Aprende a organizar datos en reportes ALV mediante agrupamientos y estructuras jerárquicas (cabecera-detalle). ¡Técnicas esenciales para reportes complejos! 1 Agrupamiento en ALV Objetivo: Agrupar registros por campos comunes (ej: estado civil, región). Implementación: Declarar estructuras clave: Llenar tabla de agrupamiento: Pasar al módulo ALV: Notas críticas: Exclusivo para ALV Grid: No funciona en ALV Lista. wa_sort-group = 'GP': Hace grupos contraíbles (icono ). Múltiples niveles: Agrega más campos a ti_sort para subgrupos. Resultado: 2 ALV Jerárquico...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

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

SAP Expert


El ALV jeráquico y el argupamiento 1 El agrupamiento en un ALV El agrupamiento en un ALV (ABAP List Viewer) permite presentar de forma organizada los datos de un reporte, agrupando los registros que comparten el mismo valor en uno o varios campos. Para lograr esto, se utiliza una tabla interna llamada TI_SORT, de tipo SLIS_T_SORTINFO_ALV, y una estructura WA_SORT, de tipo SLIS_SORTINFO_ALV. Pasos principales: Declaración de estructuras: Se declaran TI_SORT y WA_SORT para definir los criterios de agrupamiento. Llenado de agrupamientos: En la subrutina AGRUPAR_CAMPOS se agregan a TI_SORT los campos por los que se desea agrupar. Vinculación al ALV: Al llamar al módulo de funciones...

Acceder a esta publicación

Creado y Compartido por: Geovanny Martínez Campoverde

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

SAP Expert



El ALV Jerárquico es un tipo especial de reporte ALV que muestra datos en forma de padre-hijo (master-detail). Se utiliza cuando se tiene una relación clara y estructural entre dos tablas: una cabecera (header) y un detalle (item). Es similar a una vista de árbol donde cada entrada principal se expande para mostrar sus detalles asociados. El Agrupamiento en ALV no tiene que ver con relaciones jerárquicas entre tablas, sino con cómo se presentan los datos dentro de una sola tabla interna. El objetivo es organizar y visualizar los datos agrupados por una o más columnas, generando así bloques visuales con títulos o subtotales. En SAP ABAP, el ALV (ABAP List Viewer) es una herramienta poderosa...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Senior

Agrupamiento en un ALV Se pueden agrupar los registros que compartan un mismo valor de un campo en particular, para que se muestren de forma agrupada por ese campo. Para hacerlo se declara una tabla interna tipo SLIS_T_SORTINFO_ALV y una estructura del tipo SLIS_SORTINFO_ALV. Luego dentro del evento star-of-selection y antes de llamar el modulo de funciones que ejecuta el ALV, se declara una subrutina que agrupara los campos. Dentro de esta subrutina se carga la tabla interna creada anteriormente con los registros en el orden que se quieran agrupar. Para finalizar, en la subrutina dentro de la llamada al modulo de funciones que ejecuta el ALV, se debe agregar el parametro exporting IT_SORT = tabla interna creada anteriormente. Reportes ALV...

Acceder a esta publicación

Creado y Compartido por: Luciano Martinez / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Expert


El agrupamiento en un ALV Para ello debemos declarar la tabla interna TI_SORT del tipo SLIS_T_SORTINFO_ALV y la estructura WA_SORT del tipo SLIS_SORTINFO_ALV. Luego dentro del avento START-OF-SELECION y antes de llamar al módulo de funciones que ejecuta el reporte ALV vamos a declarar la subrutina AGRUPAR_CAMPOR. y dentro de la subrutina vamos a cargar la tabla interna TI_SORT con los registros en el orden en el que deseamos agrupar. Ahora en la declaracion del módulo de funciones REUSE_ALV_GRID_DISPLAY debemos completar el parámetro EXPORTING IT_SORT con nuetra tabla interna TI_SORT. Y hacemos lo mismo en la declaracion del módulo de funciones REUSE_ALV_LIST_DISPLAY para ALV Lista Dado que vamos a generar el...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Senior

El agrupamiento en un ALV: Para ello debemos declarar la tabla interna TI_SORT del tipo SLIS_T_SORTINFO_ALV y la estructura WA_SORT del tipo SLIS_SORTINFO_ALV. Luego dentro del avento START-OF-SELECION y antes de llamar al módulo de funciones que ejecuta el reporte ALV vamos a declarar la subrutina AGRUPAR_CAMPOR. y dentro de la subrutina vamos a cargar la tabla interna TI_SORT con los registros en el orden en el que deseamos agrupar. Ahora en la declaracion del módulo de funciones REUSE_ALV_GRID_DISPLAY debemos completar el parámetro EXPORTING IT_SORT con nuetra tabla interna TI_SORT. Y hacemos lo mismo en la declaracion del módulo de funciones REUSE_ALV_LIST_DISPLAY para ALV Lista. Finalmente si ejecutamos el...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo / Disponibilidad Laboral: PartTime

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

SAP Master

EL AGRUPAMIENTO DE UN ALV: Podemos agrupar los registros que mostramos en un reporte ALV de modo que varios registros que presentan el mismo valor para un campo en particular, se muestren de forma agrupada por ese campo. Para ello se debe declarar la tabla interna TI_SORT del tipo SLIS_T_SORTINFO_ALV y la estructura WA_SORT del tipo SLIS_SORTINFO_ALV. Luego dentro del evento START-OF-SELECTION y antes de llamar al módulo de funciones que ejecuta el reporte ALV vamos a declarar la subrutina AGRUPAR_CAMPOS y dentro de la subrutina vamos a cargar la tabla interna TI_SORT con los registros en el orden en el que deseamos agrupar. "Podemos agrupar un reporte ALV por tantos campos tenga la tabla interna de salida del ALV, solo basta con...

Acceder a esta publicación

Creado y Compartido por: Jean Carlos Lopez / Disponibilidad Laboral: FullTime

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

SAP Master

1. Agrupamiento en un ALV: Es posible agrupar registros en un reporte ALV para mostrar varios registros con el mismo valor para un campo en particular de forma agrupada. Se declara una tabla interna `TI_SORT` del tipo `SLIS_T_SORTINFO_ALV` y una estructura `WA_SORT` del tipo `SLIS_SORTINFO_ALV`. Se carga la tabla interna `TI_SORT` con los registros en el orden deseado para agrupar. Se utiliza la subrutina `REUSE_ALV_LIST_DISPLAY` para el ALV Lista y `REUSE_ALV_GRID_DISPLAY` para el ALV Grilla. 2. ALV jerárquico: Un ALV jerárquico se utiliza para mostrar datos de cabecera y detalles, donde hay al menos un campo común entre las tablas internas de cabecera y detalles. Se declara una tabla interna...

Acceder a esta publicación

Creado y Compartido por: Alvaro Andres Ardila Sandoval / Disponibilidad Laboral: FullTime + Carta Presentación

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.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!