我在选择屏幕上有这样的屏幕过滤器
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-option的参数。
我想禁用它,因为它是精确的值,从表中填充取决于sy-uname:)
我该如何处理?
答案 0 :(得分:12)
您可以使用OUTPUT
选择屏幕事件。
添加以下代码:
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'S_WERKS'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
将此{0}}的input
值更改为0
将禁用输入,并使输入字段显示为灰色。
答案 1 :(得分:1)
您可以使用no-display
定义参数不可用。
parameters:
s_visib like resb-werks default 'X',
s_werks like resb-werks default 'X' no-display.
当您想要定义动态可见性时,René的解决方案非常有用。