✒️ABAP El ALV jerárquico y el agrupamiento
ABAP El ALV jerárquico y el agrupamiento
Agrupamiento en ALV
Podemos agrupar los registros que mostramos en un reporte ALV de modo que varios registros que presentan el mismo valor para un campo particular, se muestren de forma agrupada por ese campo. Se declara la tabla interna ti_sort del tipo slis_t_sortinfo_alv y la estructurawa_sort del tipo slis_sortinfo_alv.
Dentro del evento START-OF-SELECTION y antes de llamar al módulo de funciones, se declara la subrutina agrupar_campos.
Dentro de la subrutina agrupar_campos se carga la tabla ti_sort con los registros en el orden en el que deseamos agruparle. Se pueden agrupar tantos campos como se requiera.
FORM agrupar_campos.
REFRESH ti_sort.
CLEAR wa_sort.
wa_sort-sport = 1.
wa_sort-fieldname = 'Estado_civil'.
APPEN wa_sort TO ti_sort.
ENDFORM
Se declara en el módulo de funciones REUSE_ALV_GRID_DISPLAY en el parámetro export, it_sort con la tabla ti_sort. Al igual que en el módulo de funciones de ALV lista. Aunque en el alv lista no funciona igual, casi se diría que no se encuentra disponible.
ALV jerárquico.
Se usa cuando queremos mostrar en un reporte datos de cabecera y de posición, lo que requiere que en las declaraciones de las tablas internas de cabecera y de posiciones exista como mínimo un campo en común. Esto se lleva a cabo de la siguiente manera:
Se crea un ALV que muestre determinada información, se declara la tabla interna ti_cabecera y ti_detalle. En este caso ambas tablas internas son declaradas con la sentencia OCCURS.
Se declara la estructura tipo slis_keyinfo_alv
Dentro del START-OF-SELECTION se declara la subrutina cargar_datos.
Dentro de la subrutina cargar_datos se completan las tablas internas ti_cabecera y ti_detalle, con la información correspondiente.
Dentro del START-OF-SELECTION declaramos la subrutina configurar_layout
Dentro de la subrutina configurar_layout se configuran las propuedades de rayado de líneas y asignación del tipo, así:
FORM configurar_layout.
CLEAR wa_layout.
wa_layout-zebra = c_x.
wa_layout-window_tittlebar = text-001.
ENDFORM
Se crea el catálogo ALV para ambas tablas internas con la subrutina armado_catalogo_automatico, dentro de dicha subrutina se ejecuta el módulo de funciones REUSE_ALV_FIELDCATALOG_MERGE, para generar el catálogo en forma automática sumando los campos de ambas tablas internas en la tabla ti_catalogo.
CHANGING
ct_fieldcat = ti_catalogo [ ]
Se completa la estructura wa_keyinfo, declarando la subrutina determinar_asociación, dentro de esta subrutina se completan los campos header01 e item01 con el campo en común de la tabla interna ti_cabecera que hacer vinculo con ti_detalle, así:
FORM determinar_asociacion.
CLEAR wa_keyinfo.
wa_keyinfo-header01 = 'CARRID'.
wa_keyinfo-item01 = 'CARRID'.
ENDFORM
Se declara la subrutina ejecutar_alv_jerarquico, y allí se ejecuta el módulo de funciones REUSE_ALV_HIERSEQ_LIST_DISPLAY, para generar el reporte final.
Nota: En un ALV jerárquico no es posible generar una cabecera, por lo que no es posible usar el TOP OF PAGE, no es posible usar el botón de exportación de datos a excel.
 
 
 
Sobre el autor
Publicación académica de Linda Carolina Zambrano Le?n, en su ámbito de estudios para la Carrera Consultor ABAP.
Linda Carolina Zambrano Le?n
Profesión: Agente - Peru - Legajo: XR55P
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Linda Zambrano