![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los módulos de funciones POPUP
ABAP Los módulos de funciones POPUP
![ABAP Los módulos de funciones POPUP ABAP Los módulos de funciones POPUP](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/243.jpg)
3| MODULO DE FUNCIONES POPUP
Conjunto de modulo de funciones estándar utiles para los consultores ABAP
a la hora de crear programas que tengan interacción con el usuario.
Permite generar:
- ventanas de diálogo de confirmación
- ventanas de diálogo en donde se muestra información
- ventanas de diálogo en donde se solicita el ingreso de datos
- ventana de diálogo en donde se muestra el contenido de tablas internas.
buscar en modelo > call function > POPUP*
Podemos ver que existen 170 modulos de funciones POPUP
LOS MAS UTILIZADOS
POPUP_TO_CONFIRM
muestra en pantalla una ventana de diálogo en donde se le hace una pregunta al usuario y espera respuesta para continuar
EJ de utilización:
DATA: v_title(150) TYPE c,
v_text_question(150) TYPE c,
v_answer(1) TYPE c.
CONCATENATE 'Se han modificado los datos del cliente.'
'Desea grabar los cambios?'
INTO v_text_question
SEPARATED BY space.
v_title = 'Modificación de datos de Clientes'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = v_title
text_question = v_text_question
IMPORTING
answer = v_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgvl sy-msgv2 sy-msgv3 sy-msgv4.
ELSEIF sy-subrc EQ 0.
IF v_answer EQ '1'. "presiono el botón SI
ELSEIF v_answer EQ '2'. "presiono el botón NO
ELSEIF v_answer EQ 'A'. "presiono el botón CANCELAR
ENDIF.
ENDIF.
-----------------------------------------------------------------
POPUP_TO_CONFIRM_DATA_LOSS
Muestra en pantalla una ventana de diálogo en donde se le informa al usuario que
los datos modificados se perderán y se le pregunta si desea grabar.
ej de uso:
DATA: v_title(150) TYPE c,
v_answer(1) TYPE c.
v_title = 'Confirmación'.
CALL FUNCTION 'POPUP_TO_CONFIRM_DATA_LOSS'
EXPORTING
defaultoption = 'J'
titel = v_title
IMPORTING
answer = v_answer.
IF v_answer EQ 'J'.
ENDIF.
------------------------------------------------------------------
POPUP_TO_DECIDE_LIST
muestra en pantalla una ventana de diálogo en donde el usuario debe elegir una de las opciones disponibles para contiuar con el procesamiento.
ej de uso:
DATA: ti_spopli TYPE STANDARD TABLE OF spopli,
wa_spopli LIKE LINE OF ti_spopli,
v_ansiwer(1) TYPE c.
REFRESH ti_spopli.
CLEAR wa_spopli.
MOVE 'Activo' TO wa_spopli-varoption.
MOVE 'X' TO wa_spopli-selflag.
APPEND wa_spopli TO ti_spopli.
CLEAR wa_spopli.
MOVE 'Inactivo' TO wa_spopli-varoption.
MOVE 'X' TO wa_spopli-selflag.
APPEND wa_spopli TO ti_spopli.
CALL FUNCTION 'POPUP_T0_DECIDE_LIST'
EXPORTING
cursorline = 1
mark_flag = ''
mark_max = 1
start_col = 70
start_row = 10
textlinel = 'Estado del usuario'
titel = 'Usuarios'
IMPORTING
answer = v_answer
TABLES
t_spopli = ti_spopli
EXCEPTIONS
not_enough_answers = 1
too_much_answers = 2
too_much_marks = 3
OTHERS = 4.
IF sy-subrc NE 0.
MESSAGE ID sy_msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSEIF sy-subrc EQ 0.
IF v_answer EQ '1'. "presiono la tilde verde
ELSEIF v_answer EQ 'A'. "presiono X
ENDIF.
ENDIF.
-------------------------------------------------------------------
POPUP_TO_SELECT_MONTH
se utiliza para que el usuario seleccione mes y año
ej de uso:
DATA: v_sel_mon TYPE isellist-month.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
EXPORTING
actual_month = '202110'
IMPORTING
selected_month = v_sel_mon
EXCEPTIONS
factory_calendar_not_found = 1
holiday_calendar_not_found = 2
month_not_found = 3
OTHERS = 4.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
------------------------------------------------------------------------
POPUP_WITH_TABLE_DISPLAY
muestra en pantalla una ventana de diálogo con el contenido de una tabla interna, la cual previamente cargamos con datos
ej de uso:
TYPES: BEGIN OF ty_clientes,
nombre(10) TYPE c,
telefono(12) TYPE c,
fnacimiento(12) TYPE c,
END OF ty_clientes.
DATA: ti_clientes TYPE STANDARD TABLE OF ty_clientes
wa_clientes LIKE LINE OF ti_clientes.
REFRESH ti_clientes.
CLEAR wa_clientes.
wa_clientes-nombre = ''
wa_clientes-telefono = ''
wa_clientes-fnacimiento = ''
APPEND wa_clientes TO ti_clientes.
CLEAR wa_clientes.
wa_clientes-nombre = ''
wa_clientes-telefono = ''
wa_clientes-fnacimiento = ''
APPEND wa_clientes TO ti_clientes.
CLEAR wa_clientes.
wa_clientes-nombre = ''
wa_clientes-telefono = ''
wa_clientes-fnacimiento = ''
APPEND wa_clientes TO ti_clientes.
CALL FUNCTION 'POPUP_WITH_TABLEDISPLAY'
EXPORTING
endpos_col = 80
endpos_row = 15
startpos_col = 1
startpos_row = 1
titletext = 'Listado de clientes'
TABLES
valuetab = ti_clientes
EXCEPTIONS
break_off = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
---------------------------------------------------------------
POPUP_TO_DISPLAY_TEXT
muestra en una ventana "texto informativo"
ej de uso:
DATA: v_title(150) TYPE c.
v_title = 'Información importante'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
titel = v_title
textline1 = 'A partir del 31/11 el APY pasa a ser calculado anualmente.'
textline2 = 'El nuevo procentaje de interes anualizado es del 9%.'
start_column = 25
start_row = 6.
IF sy-subrc NE 0.
MESSAGE ID sy_msgid TYPE sy_msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
-----------------------------------------------------------------
POPUP_GET_VALUES
muestra en pantalla una ventana de diálogo con campos de entrada y salida para que el usuario complete
y continúe con el procesamiento.
ej de uso
DATA: ti_campos TYPE STANDARD TABLE OF sva1,
wa_compos LIKE LINE OF ti_campos,
v_return_popup(1) TYPE c.
REFRESH ti_campos.
CLEAR wa_campos.
wa_campos-tabname = ''
wa_campos-fieldname = ''
wa_campos-fieldtext = ''
APPEND wa_campos TO ti_campos.
CLEAR wa_campos.
wa_campos-tabname = ''
wa_campos-fieldname = ''
wa_campos-fieldtext = ''
wa_campos-field_obl = 'X'
APPEND wa_campos TO ti_campos.
CLEAR v_return_popup.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
no_value_check = ''
popup_title = 'Ingrese los datos del usuario'
start_column = '14'
start_row = '5'
IMPORTING
returncode = v_return_popup
TABLES
fields = ti_campos
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
ELSEIF sy-subrc EQ 0.
IF v_return_popup EQ space. "presionamos la tilde verde
ELSEIF v_return_popup EQ 'A' "presionamos X
ENDIF.
ENDIF.
-----------------------------------------------------------------------
POPUP_TO_SHOW_USERINFO
muestra en pantalla una ventana de diálogo con la información del usuario.
ej de uso:
DATA: wa_vtbuser TYPE vtbuser.
CLEAR wa_vtbuser.
wa_vtbuser-cruser = sy-uname. "CHAR 12 0 Autor
wa_vtbuser-dcrdat = sy-datum. "DATS 8 0 fecha entrada
wa_vtbuser-tcrtim = sy-uzeit. "TIMS 6 0 Hora de entrada
wa_vtbuser-upuser = sy-uname. "CHAR 12 0 Modificado por
wa_vtbuser-dupdat = sy-datum. "DATS 8 0 Fecha de modificación
wa_vtbuser-tuptim = sy-uzeit. "TIMS 6 0 Hora de modif.
CALL FUNCTION 'POPUP_TO_SHOW_USERINFO'
EXPORTING
user = wa_vtbuser.
* ideal para mostrar un log de modif. de registros
otro módulo de funciones POPUP muy similar es POPUP_TO_DISPLAY_USERDATA.
 
 
 
Sobre el autor
Publicación académica de Maximiliano Andres Fraga, en su ámbito de estudios para la Carrera Consultor ABAP.
Maximiliano Andres Fraga
Profesión: Desarrollador - Argentina - Legajo: PX18Q
✒️Autor de: 20 Publicaciones Académicas
🎓Cursando Actualmente: Consultor en SAP Fiori
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime