✒️ABAP / El ALV jerárquico y el agrupamiento Por Juan Romero
ABAP El ALV jerárquico y el agrupamiento

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 el reporte en formato ALV grilla, se verá la agrupación; en formato ALV lista, la agrupación por campos no se muestra de la misma manera.
ALV Jerárquico: Conceptos y Ejemplo
- El ALV jerárquico se usa para mostrar datos de cabecera y posición en un reporte, debiendo compartir las tablas internas al menos un campo común.
- Ejemplo abordado: reporte jerárquico de compañías aéreas y sus vuelos asociados.
- Se declaran dos tablas internas: TICabecera (con datos de la compañía) y TIDetalle (con datos de cada vuelo), vinculadas por el campo CarrId.
- Ambas tablas se declaran usando la sentencia Occurs para generar el catálogo automáticamente.
- Se utiliza una estructura SListKeyInfoALV (WACayInfo) para mantener la relación entre ambas tablas.
- Las tablas internas se cargan con datos (en el ejemplo, para compañías ARG y LAM).
- Se sugiere que en vez de carga manual, se podría obtener la información con un SELECT a la base de datos.
- Mediante la subrutina ConfigurarLayout se configuran detalles visuales como el rayado de líneas y el título del reporte.
- El catálogo del ALV se genera automáticamente con la subrutina ArmadoCatálogoAutomático y el módulo ReduceALVFillCatalogMerge.
- La subrutina DeterminarAsociación completa la información de vínculo entre cabecera y detalle.
- Finalmente, la subrutina EjecutarALVJerárquico ejecuta el reporte usando ReduceALVGerarSeqListDisplay.
Reporte ALV jerárquico: detalles
Diferencias y limitaciones de los tipos de ALV
La funcionalidad de agrupamiento de campos en un reporte ALV está disponible solo para ALV grilla y no para ALV lista.
En los ALV jerárquicos no es posible utilizar el evento "top of page", lo que impide generar una cabecera con títulos y logos como en los ALV tipo grilla.
Los ALV jerárquicos tampoco permiten utilizar el botón de exportación a Excel debido a diferencias de formato entre la cabecera y los registros.
Características de los ALV jerárquicos
Son el tercer tipo de reporte ALV, menos común que las grillas y listas.
Están diseñados para mostrar información de cabecera y detalle, como facturas con sus líneas de detalle, o aerolíneas con sus vuelos asociados.
Permiten visualizar la información en forma de árbol, generando una relación principal (cabecera) y secundaria (detalle).
Ejecución y configuración paso a paso
- El ejemplo se basa en el programa ZReporteALVJerárquico.
- Se realiza una carga de registros de cabecera (aerolínea, con código y nombre) y de detalle (vuelos asociados con información relevante).
- La configuración del layout (zebra, título, etc.) es similar a la de los ALV grilla.
- El catálogo puede armarse de forma manual o automática, teniendo en cuenta restricciones como el ancho del programa y aspectos de la declaración de tablas.
- Al generar el catálogo automáticamente, se utiliza el módulo de funciones "ReduceLBCatalogGetCatalogMerge" tanto para la tabla de cabecera como para la de detalle.
- Se determina la asociación entre cabecera y detalle mediante un campo específico (en este caso, el código de la aerolínea "carried").
- La ejecución final se realiza con el módulo funcional "ReduceLBYexecListDisplay", donde se cargan tablas de cabecera y detalle, junto con el layout, el nombre del programa, etc.
Visualización y utilidad práctica
El ALV jerárquico muestra primero la aerolínea (código y descripción) y debajo los vuelos asociados de cada aerolínea.
Incluye la funcionalidad estándar de los reportes ALV.
Aunque no son reportes muy comunes de desarrollar, es útil conocer su existencia y particularidades para situaciones específicas en desarrollo ABAP.
Se destaca la opción de automatizar la carga de datos mediante consultas directas a base de datos.
 
 
 
Sobre el autor
Publicación académica de Juan Ignacio Romero, en su ámbito de estudios para el Curso SAP ABAP.
Juan Ignacio Romero
Profesión: Ing. Sistemas Computacionales - Mexico - Legajo: LJ26F
✒️Autor de: 138 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Juan Romero






Disponibilidad Laboral: FullTime


















