Search code examples
abapsap-selection-screens

Disable a parameter input at selection screen


I have screen filter at selection screen like this

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.

and I want to disable just s_werks parameter but SELECT-OPTIONS.

I want to disable it because it'll be exact value which is filled from table depends on the sy-uname :)

How to achieve that?


Solution

  • You can use the OUTPUT selection screen event for this. Add the following code:

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

    Changing the input value to 0 for this screen element will disable input and makes the input field appear as grayed out.