✒️ABAP El ALV jerárquico y el agrupamiento
ABAP El ALV jerárquico y el agrupamiento
AGRUPAMIENTO EN ALV
Para agrupar los registros mostrados en una ALV hay que declarar una tabla de tipo SLIS_T_SORTINFO_ALV y una estructura SLIS_SORTINFO_ALV
Ejemplo
DATA ti_sort TYPE slis_t_sortinfo_alv,
st_sort TYPE slis_sortinfo_alv.
Luego antes de ejecutar la función ALV cargamos la tabla TI_SORT con los registros en el orden en que deseamos agrupar
Ejemplo
CLEAR st_sort.
st_sort-pos = 1. “Orden del agrupamiento
st_sort-fieldname = ‘Nombre’. “ Nombre del campo que agrupa
APPEND st_sort TO ti_sort.
Ahora añadir el parámetro IT_SORT en la función ALV con nuestra tabla TI_SORT
Ejemplo
CALL FUNCION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = v_repid
i_callback_pf_status_set = ‘PS_STATUS’
i_callback_user_command = ‘USER_COMMAND’
it_fielcat = ti_catalogo [ ]
i_callback_top_of_page = ‘TOP_OF_PAGE’
is_layout = ti_layout
it_sort = ti_sort
TABLES
t_outtab = ti_usuarios.
ALV JERARQUICO
En la declaración de las tablas internas debe haber como mínimo un campo en común.
Hay que declarar una estructura del tipo SLIS_KEYINFO_ALV y que contendrá el campo/s clave de las dos tablas.
Ejemplo
*tabla interna cabecer
DATA: BEGIN OF ti_cabecera OCCURS 0,
carrid LIKE scarr-carrid,
carrname LIKE scarr-carrname,
END OF ti_cabecera.
* tabla interna detalle
DATA: BEFIN OF ti_detalla OCCURS 0,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
END OF ti_detalle.
DATA: st_keyinfo TYPE slis_keyinfo_alv.
Ahora se cargarían las tablas
Se rellena el CATALGO sumando los campos de las dos tablas en la tabla TI_CATALAGO
Ejemplo
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
OTHER 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
OTHER 3.
Una vez terminado esto hay que completar la estructura ST_KEYINFO.
En los campos HEADER01 e ITEM01 va a ir el campo de la tabla cabecera que hace de vínculo con la tabla detalle
Ejemplo
CLEAR st_keyinfo.
st_keyinfo-header01 = ‘CARRID’.
st_keyinfo-item01 = ‘CARRID’.
Por último se ejecuta la función REUSE_ALV_HIERSEQ_LIST_DISPLAY.
CALL FUNCTION ‘REUSE_ALV_HIERSEQ_LIST_DISPLAY’
EXPORTING
i_callback_program = sy-repid
i_callback_pg_status_set = ‘PS_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
OTHER 2.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para la Carrera Consultor ABAP.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial