Abap 在选择屏幕上禁用参数输入

Abap 在选择屏幕上禁用参数输入,abap,sap-selection-screens,Abap,Sap Selection Screens,我在选择屏幕上有这样的屏幕过滤器 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. SELEC

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

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
:)


如何实现这一点?

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

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

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

您可以使用
无显示来定义参数non-viible

parameters:
  s_visib like resb-werks default 'X',
  s_werks like resb-werks default 'X' no-display.
当您想要定义动态可见性时,René的解决方案非常有用