✒️ABAP El ALV jerárquico y el agrupamiento
ABAP El ALV jerárquico y el agrupamiento
ALV jerarquico y Agrupamiento
Podemos agrupar los registros que mostramos en un ALV.
Crear Tabla SLIS_T_SORTINFO_ALV y una estructura del tipo SLIS_SORTINFO_ALV.
ti_sort type slis_t_sortinfo_alv,
st_sort type slis_sortinfo_alv.
Luego cargamos TI_SORT con los registros en el orden en el qye deseamos agrupar.
CLEAR st_sort.
st_sort-spos = 1. "orden del agrupamiento
st_sort-fieldname = 'Estado civil'. "nombre del campo que agrupa
APPEND st_sort TO ti_sort.
Ahora se completa IT_SORT con la tabla interna TI_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.
2. ALV Jerarquico
Los ALV jerarquicos se utilizan para datos con cabecera y posiciones.
Debe haber como minimo un campo en comun.
Data: BEGIN OF ti_cabecera OCCURS 0,
carrid like scarr-carrid,
carrname like scarr-carrname,
END OF ti_cabecera.
DATA: BEGIN OF ti_detalle OCCURS 0,
carrid like sflight-carrid,
connid like sfligth-connid,
fldate like sflight-fldate,
END OF ti_detalle.
Debemos declarar una estructura del tipo SLIS_KEYINFO_ALV, que será ST_KEYINFO y contendrá el campo clave que une a las dos tablas internas.
ST_keyinfo TYPE slis_keyinfo_alv.
Luego Cargamos el Catalogo del ALV para ambas tablas Internas, sumando los campos de ambas tablas en la tabla del catalogo TI_catalogo.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'TI_Cabecera'
i_client_nerver_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_nerver_display = 'X'
i_inclname = sy-repid
CHANGING
ct_fieldcat = ti_catalogo()
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
Ahora se completa la estructtura ST_KEYINFO. En los Campos Header01 y ITEM01 va a ir el campo de la tabla de cabecera que hace de vinculo con la tabla de detalles.
Clear st_keyinfo.
st_keyinfo-header01 = 'CARRID'.
st_keyinfo-item01 = 'CARRID'.
Por ultimo se ejecuta la funcion 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 Jerarquico no se puede usar el TOP-OF -PAGE por lo tanto nose puede incluir Logo no titulos.
No se puede utilizar la exportacion al Excel tampoco debido a la diferencia entre el formato de la cabecera y el formato de cada registro.
 
 
 
Sobre el autor
Publicación académica de Silvia Marina Carrizo, en su ámbito de estudios para la Carrera Consultor ABAP.
Silvia Marina Carrizo
Profesión: Analista Senior Genexus - Argentina - Legajo: ER54O
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Silvia Carrizo