5

我在选择屏幕上有这样的屏幕过滤器

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参数但是SELECT-OPTIONS

我想禁用它,因为它将是从表中填充的确切值取决于sy-uname:)

如何做到这一点?

4

2 回答 2

12

您可以OUTPUT为此使用选择屏幕事件。添加以下代码:

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

input将此屏幕元素的值更改0为 将禁用输入并使输入字段显示为灰色。

于 2011-11-17T11:47:02.100 回答
1

您可以使用 定义参数 non-vivible no-display

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

当您想要定义可见性动态时,René 的解决方案很有用。

于 2011-11-25T16:06:02.350 回答