Как установить значения в списке? - PullRequest
3 голосов
/ 13 января 2012

Я определил список на экране выбора следующим образом:

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE ALTITLE1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (30) ALCONT4 FOR FIELD L1.
PARAMETERS: L1 AS LISTBOX VISIBLE LENGTH 20 MODIF ID AOD.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.

Теперь мне нужно предложить возможные значения для этого списка, как я могу это сделать?

1 Ответ

4 голосов
/ 13 января 2012

Во время PBO вашего экрана (для экранов выбора код PBO определен внутри блока событий AT SELECTION-SCREEN OUTPUT), вы должны вызвать функциональный модуль VRM_SET_VALUES, передав имя поля и список значений.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE altitle1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (30) alcont4 FOR FIELD l1.
PARAMETERS: l1 AS LISTBOX VISIBLE LENGTH 20 MODIF ID aod.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.
  alcont4 = 'Choose the country'(001).

AT SELECTION-SCREEN OUTPUT.
  DATA: lt_value TYPE vrm_values,
        ls_value TYPE vrm_value.
  ls_value-key = 'FRA'.
  ls_value-text = 'France'.
  APPEND ls_value TO lt_value.
  ls_value-key = 'GER'.
  ls_value-text = 'Germany'.
  APPEND ls_value TO lt_value.
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id              = 'L1'
      values          = lt_value
    EXCEPTIONS
      id_illegal_name = 1
      OTHERS          = 2.

Исполнение:

enter image description here

Более подробную информацию можно найти в библиотеке SAP (пояснения действительны для всех типов экранов, примеры приведены только для классических экранов, но их можно легко адаптировать к экранам выбора): http://help.sap.com/saphelp_470/helpdata/en/9f/dbabe435c111d1829f0000e829fbfe/frameset.htm

...