Ir al contenido
Programación ABAP

REUSE_ALV_LIST_DISPLAY

Muestra una tabla interna como listado ALV en formato lista (no rejilla).

Módulo de funciónALVObsoleta
Transacción
SE37
Grupo
ALV
Actualizado
21 de octubre de 2026

Función obsoleta. Para listados nuevos usa la clase CL_SALV_TABLE. Si necesitas el aspecto de lista clásica, pasa list_display = abap_true al método factory. Tienes el ejemplo moderno más abajo.

Para qué sirve

REUSE_ALV_LIST_DISPLAY pinta una tabla interna como un listado ALV clásico, con aspecto de lista impresa. El usuario puede ordenar, filtrar, sumar y exportar igual que en el ALV Grid.

Sus parámetros son prácticamente los mismos que los de REUSE_ALV_GRID_DISPLAY: catálogo de campos (IT_FIELDCAT) o estructura del diccionario (I_STRUCTURE_NAME), aspecto (IS_LAYOUT) y eventos atendidos por formularios FORM del programa.

Es una función antigua basada en subrutinas. Para listados nuevos se usa la clase CL_SALV_TABLE, que puede mostrar el resultado también en formato lista.

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ámetroTipoDescripción
I_CALLBACK_PROGRAMSY-REPIDPrograma con los FORM de los eventos. Pasa sy-repid copiado antes en una variable.
I_CALLBACK_PF_STATUS_SETSLIS_FORMNAMEFORM que pone un status propio.
I_CALLBACK_USER_COMMANDSLIS_FORMNAMEFORM que recibe los botones y el doble clic.
I_STRUCTURE_NAMEDD02L-TABNAMEEstructura del diccionario de la que se toma el catálogo.
IS_LAYOUTSLIS_LAYOUT_ALVAspecto del listado: ajuste de columnas, cebra, color de fila…
IT_FIELDCATSLIS_T_FIELDCAT_ALVCatálogo de campos.
IT_SORTSLIS_T_SORTINFO_ALVOrdenación y subtotales iniciales.
I_SAVECHAR01Permite guardar variantes: 'A', 'U' o 'X'.Por defecto: SPACE
IS_VARIANTDISVARIANTVariante de visualización inicial.
IT_EVENTSSLIS_T_EVENTEventos y FORM que los atienden.

Tables

Tablas internas que se pasan o se devuelven (TABLES).

ParámetroTipoDescripción
T_OUTTABObligatorioTabla estándarDatos que se muestran.

Excepciones

Errores que devuelve en sy-subrc, en el bloque EXCEPTIONS.

ExcepciónCuándo se produce
PROGRAM_ERRORError en los datos de entrada, normalmente el catálogo de campos.

Ejemplo

ABAP
DATA: lt_mara  TYPE STANDARD TABLE OF mara,
      lv_repid TYPE sy-repid.

SELECT * FROM mara UP TO 100 ROWS INTO TABLE lt_mara.
lv_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
  EXPORTING
    i_callback_program = lv_repid
    i_structure_name   = 'MARA'
    i_save             = 'A'
  TABLES
    t_outtab           = lt_mara
  EXCEPTIONS
    program_error      = 1
    OTHERS             = 2.

Hoy lo harías así: CL_SALV_TABLE

Ahora
SELECT * FROM mara INTO TABLE @DATA(lt_mara) UP TO 100 ROWS.

TRY.
    cl_salv_table=>factory(
      EXPORTING list_display = abap_true      " aspecto de lista clásica
      IMPORTING r_salv_table = DATA(lo_alv)
      CHANGING  t_table      = lt_mara ).
    lo_alv->get_functions( )->set_all( abap_true ).
    lo_alv->display( ).
  CATCH cx_salv_msg INTO DATA(lx_error).
    MESSAGE lx_error TYPE 'E'.
ENDTRY.

Errores y excepciones habituales

  • PROGRAM_ERROR: el catálogo tiene campos que no existen en la tabla o en minúsculas.
  • Los eventos no responden: I_CALLBACK_PROGRAM se ha pasado como sy-repid directamente; cópialo antes en una variable.

Relacionadas

Funciones relacionadas

REUSE_ALV_GRID_DISPLAYREUSE_ALV_HIERSEQ_LIST_DISPLAY

Más en ALV

HR_DISPLAY_BASIC_LIST

Transacciones y tablas

SE37

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.

Preguntar en el foro

Actualizado: 21 de octubre de 2026