REUSE_ALV_HIERSEQ_LIST_DISPLAY
Muestra un listado ALV jerárquico de dos niveles: cabeceras y sus posiciones.
- Transacción
SE37- Grupo
ALV- Actualizado
- 21 de octubre de 2026
Alternativa moderna. Para listados nuevos usa la clase CL_SALV_HIERSEQ_TABLE, el equivalente orientado a objetos.
Para qué sirve
REUSE_ALV_HIERSEQ_LIST_DISPLAY muestra dos tablas internas relacionadas como un listado jerárquico: cada línea de cabecera (por ejemplo, un pedido) aparece seguida de sus posiciones.
La relación entre las dos tablas se indica con IS_KEYINFO, que dice qué campos enlazan la cabecera con las posiciones. El catálogo de campos debe indicar en cada campo a qué tabla pertenece (campo TABNAME).
Es una función antigua basada en subrutinas. Para listados nuevos existe la clase CL_SALV_HIERSEQ_TABLE, que hace lo mismo con objetos.
Parámetros
Esta función tiene muchos parámetros; aquí están los más usados. La lista completa se ve en la transacción SE37.
Importing
Lo que recibe la función. En CALL FUNCTION se pasan tras EXPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
I_CALLBACK_PROGRAM | SY-REPID | Programa con los FORM de los eventos. |
IS_LAYOUT | SLIS_LAYOUT_ALV | Aspecto del listado. |
IT_FIELDCAT | SLIS_T_FIELDCAT_ALV | Catálogo de campos de las dos tablas (campo TABNAME en cada línea). |
I_TABNAME_HEADERObligatorio | SLIS_TABNAME | Nombre de la tabla interna de cabeceras. |
I_TABNAME_ITEMObligatorio | SLIS_TABNAME | Nombre de la tabla interna de posiciones. |
IS_KEYINFOObligatorio | SLIS_KEYINFO_ALV | Campos que relacionan cabecera y posiciones. |
Tables
Tablas internas que se pasan o se devuelven (TABLES).
| Parámetro | Tipo | Descripción |
|---|---|---|
T_OUTTAB_HEADERObligatorio | Tabla estándar | Cabeceras. |
T_OUTTAB_ITEMObligatorio | Tabla estándar | Posiciones. |
Excepciones
Errores que devuelve en sy-subrc, en el bloque EXCEPTIONS.
| Excepción | Cuándo se produce |
|---|---|
PROGRAM_ERROR | Error en el catálogo o en la relación entre tablas. |
Ejemplo
TYPE-POOLS slis.
DATA: lt_cab TYPE STANDARD TABLE OF vbak,
lt_pos TYPE STANDARD TABLE OF vbap,
lt_fcat TYPE slis_t_fieldcat_alv,
ls_keyinfo TYPE slis_keyinfo_alv,
lv_repid TYPE sy-repid.
SELECT * FROM vbak UP TO 20 ROWS INTO TABLE lt_cab.
IF lt_cab IS NOT INITIAL.
SELECT * FROM vbap FOR ALL ENTRIES IN lt_cab
WHERE vbeln = lt_cab-vbeln INTO TABLE lt_pos.
ENDIF.
" Catálogo de las dos tablas a partir del diccionario
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING i_tabname = 'LT_CAB' i_structure_name = 'VBAK'
CHANGING ct_fieldcat = lt_fcat.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING i_tabname = 'LT_POS' i_structure_name = 'VBAP'
CHANGING ct_fieldcat = lt_fcat.
ls_keyinfo-header01 = 'VBELN'. " campo de enlace en la cabecera
ls_keyinfo-item01 = 'VBELN'. " y en las posiciones
lv_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = lv_repid
it_fieldcat = lt_fcat
i_tabname_header = 'LT_CAB'
i_tabname_item = 'LT_POS'
is_keyinfo = ls_keyinfo
TABLES
t_outtab_header = lt_cab
t_outtab_item = lt_pos
EXCEPTIONS
program_error = 1
OTHERS = 2.Errores y excepciones habituales
- No sale ninguna posición: IS_KEYINFO no relaciona bien las tablas, o los nombres de I_TABNAME_HEADER/ITEM no coinciden con el TABNAME del catálogo.
- PROGRAM_ERROR: en el catálogo falta el TABNAME de algún campo.
Relacionadas
Funciones relacionadas
REUSE_ALV_LIST_DISPLAYREUSE_ALV_GRID_DISPLAY
Más en ALV
Transacciones y tablas
En abap.es
¿Dudas con esta función?
Pregunta en el foro de abap.es: la comunidad lleva años resolviendo dudas de ABAP en español.
Actualizado: 21 de octubre de 2026