abap - отключить ввод параметров на экране выбора - PullRequest
4 голосов
/ 17 ноября 2011

У меня есть экранный фильтр на экране выбора, подобный этому

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME.
PARAMETERS s_werks like resb-werks DEFAULT 'X' .

SELECT-OPTIONS:

  s_aufnr FOR in_param-aufnr,
  s_matnr FOR in_param-matnr,
  s_bldat FOR in_param-bldat.
SELECTION-SCREEN END OF BLOCK a.

, и я хочу отключить только текстовое поле / параметры (s_werks), но не параметр для опции выбора.

IЯ хочу отключить его, потому что это будет точное значение, которое заполняется из таблицы, зависит от sy-uname:)

Как с этим справиться?

Ответы [ 2 ]

12 голосов
/ 17 ноября 2011

Для этого вы можете использовать событие экрана выбора OUTPUT. Добавьте следующий код:

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-name = 'S_WERKS'.
      screen-input = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

Изменение значения input на 0 для этого элемента экрана отключит ввод и сделает поле ввода серым.

1 голос
/ 25 ноября 2011

Вы можете определить параметр non-vivible с помощью no-display.

parameters:
  s_visib like resb-werks default 'X',
  s_werks like resb-werks default 'X' no-display.

Решение Рене полезно, когда вы хотите определить динамику видимости.

...