quarta-feira, 22 de agosto de 2012

Função - POPUP_TO_DECIDE_LIST

  *  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
Comentários
0 Comentários

Nenhum comentário:

Postar um comentário