✒️ABAP El ALV jerárquico y el agrupamiento
ABAP El ALV jerárquico y el agrupamiento
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 Jerarquico
En un reporte de este tipo, debe de haber como minimo un campo en comun entre las tablas internas de cabecera y de posiciones. Por ejemplo para crear un ALV jerarquico que muestre informacion de compañias aereas y informacion de los vuelos de cada compañia:
Primero se declara una tabla interna TI_CABECERA que tendra dos campos, la denominacion breve de la compañia aerea (CARRID) y el nombre de la compañia aerea (CARRNAME).
Y luego se declara una tabla interna TI_DETALLE que tendra como primer campo la denominacion breve de la compañia aerea (CARRID) y sus demas campos relativos a lo deseado al reporte.
(Ambas tablas tendran como campo en comun el CARRID. Tambien ambas se tendran que declarar utilizando OCCOURS)
Ademas de declara una estructura del tipo SLIS_KEYINFO_ALV que contendra el campo clave que une ambas tablas.
Tambien se declaran una ti de catalogo del tipo SLIS_T_FIELDCAT_ALV, una wa de catalogo de tipo SLIS_FIELDCAT_ALV y una wa layout del tipo SLIS_LAYOUT_ALV.
Ahora luego de todo esto, dentro del evento start-of-selection se declaran las subrutinas:
- Una que carga los datos a las tabla internas TI_CABECERA y TI_DETALLE. Dentro de esta subrutina se puede utilizar un SELECT para cargar los datos de una tabla de base de datos, o se pueden cargar manualmente.
- Una que configura el LAYOUT, dentro de ella se configuran dos propiedades que son el rayado de lineas (zebra) y la asignacion del titulo Reportes de vuelo (titlebar)
- Una en la que se arma el catalogo del ALV, dentro de ella se llama al modulo de funciones REUSE_ALV_FIELDCATALOG_MERGE para generar el catalogo automaticamente sumando todos los campos de las tablas internas de cabecera y detalle en la tabla interna TI_CATALOGO.
- Otra que contendra la informacion que vincula a ambas tablas internas, dentro se completan los campos HEADER01 y ITEM01 con el campo que vincula ambas tablas.
- Por ultimo se declara la subrutina que ejecutara el ALV jerarquico, dentro se ejecuta el modulo de funciones REUSE_ALV_HIERSEQ_LIST_DISPLAY para generar el reporte.
Para terminar, en este tipo de reportes no se puede utilizar el evento TOP-OF-PAGE por lo que no se podran imprimir titulos y logos, tampoco esta la opcion de exportar datos a excel por diferencias entre el formato de la cabecera y los registros.
 
 
 
Sobre el autor
Publicación académica de Luciano Martinez, en su ámbito de estudios para la Carrera Consultor ABAP.
Luciano Martinez
Profesión: Consultor Abap - Argentina - Legajo: LR86R
✒️Autor de: 66 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Me capacito para desempe?ar el rol de un consultor abap, adem?s soy sql developer jr, como ambos lenguajes (sql y abap) se relacionan, hace que mi perfil sea m?s completo y se complemente.
Certificación Académica de Luciano Martinez