Conteúdo

Alimentar Select-Options manualmente

Caso você não tenha um elemento de dados com informações, ou simplesmente não queira utilizar um, basta inserir desta maneira, para que o usuário fique apenas com as informações que você adicionar ao campo. Neste exemplo, o campo terá apenas os estados do Brasil.
REPORT ZSAPeiros.

* Definição grupo de tipos
TYPE-POOLS: vrm.

* Definição de tipos
TYPES:
  BEGIN OF ty_t005u,
    bland     TYPE          t005u-bland,    "Código estado
    bezei     TYPE          t005u-bezei,    "Descr. estado
    END OF ty_t005u.

* Declaração de tabelas internas/estruturas
DATA:
  t_t005u     TYPE TABLE OF ty_t005u,       "Chaves província
  w_t005u     TYPE          ty_t005u,       "Chaves província
  t_lista     TYPE          vrm_values,     "Valores listbox
  w_lista     TYPE          vrm_value.      "Valores listbox

* Parâmetros de seleção
PARAMETERS p_bland TYPE t005u-bland AS LISTBOX VISIBLE LENGTH 20.

* Ações de tela antes da execução do programa
AT SELECTION-SCREEN OUTPUT.
  SELECT bland bezei
    FROM t005u
    INTO TABLE t_t005u
   WHERE spras EQ 'PT'
     AND land1 EQ 'BR'.

* Monta linhas do listbox com dados dos estados
  LOOP AT t_t005u INTO w_t005u.
    w_lista-key  = w_t005u-bland.
    w_lista-text = w_t005u-bezei.
    APPEND w_lista TO t_lista.
  ENDLOOP.

* Ordena
  SORT t_lista BY key.

* Função para setar os valores selecionados no parâmetro de tela
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id              = 'P_BLAND'
      values          = t_lista
    EXCEPTIONS
      id_illegal_name = 1
      OTHERS          = 2.

* Inicializar parâmetros
INITIALIZATION.
  sy-title               = 'SAPeiros: Alimentar Select-Options manualmente'.
  %_p_bland_%_app_%-text = 'Estado'.

* Ações após execução
END-OF-SELECTION.
  sy-title               = 'SAPeiros: Alimentar Select-Options manualmente'.
  WRITE: / p_bland.