✒️ABAP Los módulos de funciones POPUP
ABAP Los módulos de funciones POPUP
Funciones Popup
Transaccion SE37
Se ingresa POPUP_* para ver los popub mas comunes del sistema
POPUP_TO_CONFIRM: Para confirmar alguna accion
REPORT zprueba_abap_pop_up_1.
* Declaración de variables
DATA: v_title(150) TYPE c,
v_text_question(150) TYPE c,
v_answer(1) TYPE c.
*-----------------------------------------------------------------------*
START-OF-SELECTION.
*-----------------------------------------------------------------------*
CONCATENATE 'Se ha eliminado el registro del usuario.'
'Desea guardar los cambios?'
INTO v_text_question
SEPARATED BY space.
v_title = 'Confirmación de la Baja del usuario'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = v_title
* DIAGNOSE_OBJECT = ' '
text_question = v_text_question
* TEXT_BUTTON_1 = 'Ja'(001)
* ICON_BUTTON_1 = ' '
* TEXT_BUTTON_2 = 'Nein'(002)
* ICON_BUTTON_2 = ' '
* DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = v_text_question
* USERDEFINED_F1_HELP = ' '
* START_COLUMN = 25
* START_ROW = 6
* POPUP_TYPE =
* IV_QUICKINFO_BUTTON_1 = ' '
* IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
answer = v_answer
* TABLES
* PARAMETER =
EXCEPTIONS
text_not_found = 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.
* Esto significa que se presiono el botón SI
IF v_answer EQ '1'.
WRITE: 'Presionamos SI'.
* Esto significa que se presiono el botón NO
ELSEIF v_answer EQ '2'.
WRITE: 'Presionamos NO'.
* Esto significa que se presiono el botón CANCELAR
ELSEIF v_answer EQ 'A'.
WRITE: 'Presionamos CANCELAR'.
ENDIF.
ENDIF.
POPUP_GET_VALUES: para solicitar valores al usuario
REPORT zprueba_abap_pop_up_2.
* Declaración de variables
DATA: BEGIN OF t_campos OCCURS 5.
INCLUDE STRUCTURE sval.
DATA END OF t_campos.
DATA: v_return_popup(1) TYPE c.
*-----------------------------------------------------------------------*
START-OF-SELECTION.
*-----------------------------------------------------------------------*
CLEAR t_campos.
REFRESH t_campos.
CLEAR t_campos.
t_campos-tabname = 'ZTABLA_USUARIOS'.
t_campos-fieldname = 'DNI'.
t_campos-fieldtext = 'DNI'.
APPEND t_campos.
CLEAR t_campos.
t_campos-tabname = 'ZTABLA_USUARIOS'.
t_campos-fieldname = 'NOMBRE_APE'.
t_campos-fieldtext = 'Nombre y Apellido'.
t_campos-field_obl = 'X'.
APPEND t_campos.
CLEAR t_campos.
t_campos-tabname = 'ZTABLA_USUARIOS'.
t_campos-fieldname = 'ESTADO_USU'.
t_campos-fieldtext = 'Estado'.
APPEND t_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 = t_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.
* Esto significa que se presiono la tilde verde
IF v_return_popup EQ space.
WRITE: 'Presionamos la tilde verde'.
* Esto significa que se presiono X
ELSEIF v_return_popup EQ 'A'.
WRITE: 'Presionamos X'.
ENDIF.
ENDIF.
POPUP_TO_DECIDE_LIST
REPORT zprueba_abap_pop_up_3.
* Declaración de variables
DATA: BEGIN OF ti_spopli OCCURS 0.
INCLUDE STRUCTURE spopli.
DATA: END OF ti_spopli.
DATA: v_answer(1) TYPE c.
*-----------------------------------------------------------------------*
START-OF-SELECTION.
*-----------------------------------------------------------------------*
CLEAR ti_spopli.
REFRESH ti_spopli.
CLEAR ti_spopli.
MOVE 'Activo' TO ti_spopli-varoption.
MOVE 'A' TO ti_spopli-selflag.
APPEND ti_spopli.
CLEAR ti_spopli.
MOVE 'Inactivo' TO ti_spopli-varoption.
MOVE 'I' TO ti_spopli-selflag.
APPEND ti_spopli.
CALL FUNCTION 'POPUP_TO_DECIDE_LIST'
EXPORTING
cursorline = 1
mark_flag = ' '
mark_max = 1
start_col = 70
start_row = 10
textline1 = 'Estado del usuario'
* TEXTLINE2 = ' '
* TEXTLINE3 = ' '
titel = 'Usuarios'
* DISPLAY_ONLY = ' '
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 <> 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.
* Esto significa que se presiono la tilde verde
IF v_answer EQ '1'.
WRITE: 'Presionamos la tilde verde'.
* Esto significa que se presiono X
ELSEIF v_answer EQ 'A'.
WRITE: 'Presionamos X'.
ENDIF.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de James Johan Cardona Quinchia, en su ámbito de estudios para la Carrera Consultor ABAP.
James Johan Cardona Quinchia
Profesión: Gerente de Proyectos - Colombia - Legajo: VB54F
✒️Autor de: 41 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
Certificación Académica de James Cardona