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

时间:2011-11-17 04:32:48

标签: screen selection abap

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

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

我该如何处理?

2 个答案:

答案 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é的解决方案非常有用。