POPUP_WITH_TABLE_DISPLAY
Muestra una tabla interna en una ventana y devuelve la línea que elige el usuario.
- Transacción
SE37- Grupo
- Popup
- Actualizado
- 21 de octubre de 2026
Alternativa moderna. Para listas con columnas usa CL_SALV_TABLE con SET_SCREEN_POPUP.
Para qué sirve
POPUP_WITH_TABLE_DISPLAY presenta las líneas de una tabla interna en una ventana de tamaño configurable. El usuario hace doble clic en una línea y la función devuelve su número en CHOISE (así, con esa ortografía).
La tabla se muestra como texto, sin columnas. Para listas con columnas, ordenación y filtros, hoy se usa CL_SALV_TABLE en modo ventana emergente.
Parámetros
Importing
Lo que recibe la función. En CALL FUNCTION se pasan tras EXPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
ENDPOS_COLObligatorio | — | Columna donde termina la ventana. |
ENDPOS_ROWObligatorio | — | Fila donde termina la ventana. |
STARTPOS_COLObligatorio | — | Columna donde empieza la ventana. |
STARTPOS_ROWObligatorio | — | Fila donde empieza la ventana. |
TITLETEXTObligatorio | — | Título de la ventana. |
Exporting
Lo que devuelve. En CALL FUNCTION se recogen tras IMPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
CHOISE | SY-TABIX | Número de la línea elegida. |
Tables
Tablas internas que se pasan o se devuelven (TABLES).
| Parámetro | Tipo | Descripción |
|---|---|---|
VALUETABObligatorio | — | Tabla con las líneas que se muestran. |
Excepciones
Errores que devuelve en sy-subrc, en el bloque EXCEPTIONS.
| Excepción | Cuándo se produce |
|---|---|
BREAK_OFF | El usuario ha cancelado. |
Ejemplo
TYPES ty_linea TYPE c LENGTH 60.
DATA: lt_lineas TYPE STANDARD TABLE OF ty_linea,
lv_linea TYPE sy-tabix.
SELECT werks, name1 FROM t001w INTO TABLE @DATA(lt_centros) UP TO 20 ROWS.
lt_lineas = VALUE #( FOR c IN lt_centros ( |{ c-werks } { c-name1 }| ) ).
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
endpos_col = 70
endpos_row = 20
startpos_col = 10
startpos_row = 5
titletext = 'Elige un centro'
IMPORTING
choise = lv_linea
TABLES
valuetab = lt_lineas
EXCEPTIONS
break_off = 1
OTHERS = 2.
IF sy-subrc = 0.
DATA(lv_werks) = lt_centros[ lv_linea ]-werks.
ENDIF.Hoy lo harías así: CL_SALV_TABLE en ventana
SELECT werks, name1 FROM t001w INTO TABLE @DATA(lt_centros) UP TO 20 ROWS.
cl_salv_table=>factory( IMPORTING r_salv_table = DATA(lo_alv)
CHANGING t_table = lt_centros ).
lo_alv->set_screen_popup( start_column = 10 end_column = 70
start_line = 5 end_line = 20 ).
lo_alv->display( ).Errores y excepciones habituales
- Se escribe CHOISE: el parámetro de salida se llama así, no CHOICE.
- BREAK_OFF: el usuario ha cerrado la ventana sin elegir.
Relacionadas
Funciones relacionadas
POPUP_TO_DECIDE_LISTREUSE_ALV_GRID_DISPLAY
Más en Popup
POPUP_TO_CONFIRMHELP_DOCULINES_SHOWPOPUP_DISPLAY_MESSAGEPOPUP_GET_VALUESPOPUP_TO_CONFIRM_WITH_MESSAGEPOPUP_TO_DISPLAY_TEXTPOPUP_TO_GET_ONE_VALUEGRM_POPUP_TO_GET_ONE_VALUEPOPUP_TO_INFORMPOPUP_TO_MODIFY_TEXTTERM_CONTROL_EDITTH_POPUP
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