2011-11-17 81 views
2

禁用參數輸入我在選擇屏幕屏幕過濾器這樣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),但選擇選項沒有參數。

我想禁用它,因爲它會是從桌上擺滿精確值取決於SY-UNAME :)

我如何處理呢?

回答

9

您可以使用OUTPUT選擇屏幕事件。 添加以下代碼:

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

此屏幕元件改變input0將禁用輸入和使輸入字段顯示爲變灰。

1

您可以用no-display定義參數不可移動。

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

當你想定義可見性動態時,René的解決方案是有用的。