* Abapers, vou mostrar hoje uma função que mostra um PopUp que mostra
* opções para o User, e assim você trata o retorno do jeito que tens que
* tratar abaixo tem o código de exemplo, eu coloquei comentários nos
* parametros não usados, descomentem e façam teste... até a próxima.
*&---------------------------------------------------------------------*
REPORT z_popup_to_decide_list.
* Declaração dos parametros para exec da função
DATA :
st_spopli TYPE spopli, " Estrutura das Opções
it_spopli TYPE TABLE OF spopli, " Tabela das opções
vg_answer TYPE answer. " A resposta do User
START-OF-SELECTION.
PERFORM : z_cria_opcoes,
z_exec_func,
z_trata_retorno_func.
*&---------------------------------------------------------------------*
*& Form z_cria_opcoes
*&---------------------------------------------------------------------*
FORM z_cria_opcoes .
st_spopli-varoption = 'Opção 1'.
APPEND st_spopli TO it_spopli.
st_spopli-varoption = 'Opção 2'.
APPEND st_spopli TO it_spopli.
st_spopli-varoption = 'Opção 3'.
APPEND st_spopli TO it_spopli.
ENDFORM. " z_cria_opcoes
*&---------------------------------------------------------------------*
*& Form z_exec_func
*&---------------------------------------------------------------------*
FORM z_exec_func .
CALL FUNCTION 'POPUP_TO_DECIDE_LIST'
EXPORTING
* CURSORLINE = 1
* mark_flag = 'X' " Opção para flag
* mark_max = 2 " Qtde max de flags
* START_COL = 0 " Medidas da tela
* START_ROW = 0
textline1 = 'Linha com texto'
* TEXTLINE2 = ' '
* TEXTLINE3 = ' '
titel = 'Esse aki eh o título do Popup'
* DISPLAY_ONLY = 'X' " Somente para exibição
IMPORTING
* Aqui, esse parametro retorna a opção que o user escolheu.
answer = vg_answer
TABLES
t_spopli = it_spopli " tabela com as Opções
* 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.
ENDIF.
ENDFORM. " z_exec_func
*&---------------------------------------------------------------------*
*& Form z_trata_retorno_func
*&---------------------------------------------------------------------*
FORM z_trata_retorno_func .
CASE vg_answer.
WHEN '1'.
WRITE 'Você escolheu a opção 1, agora pq eu naum sei'.
WHEN '2'.
WRITE 'Ahhhh agora você escolheu a opção 2'.
WHEN '3'.
WRITE 'parabens, você escolheu a opção 3'.
WHEN OTHERS.
WRITE 'Sei lá'.
ENDCASE.
ENDFORM. " z_trata_retorno_func