天天看點

SAP ABAP程式設計 ABAP選擇螢幕:根據使用者選擇動态顯示螢幕

在有些程式中我們發現,如果使用者選擇了多個選項中的其一(單選框),則螢幕的外觀将會有所調整。 這是怎麼實作呢?我們來看下面的例子。   PARAMETERS: p1 TYPE c RADIOBUTTON GROUP g1 USER-COMMAND uc,

            p2 TYPE c RADIOBUTTON GROUP g1 DEFAULT 'X'. PARAMETERS: p_werks TYPE werks MODIF ID ty1,

            p_matnr TYPE matnr MODIF ID ty2.   AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.

    CASE screen-group1.

      WHEN 'TY1'.

        IF p1 IS INITIAL.

          screen-active = '0'.

        ELSE.

          screen-active = '1'.

        ENDIF.

      WHEN 'TY2'.

        IF p2 IS INITIAL.

          screen-active = '0'.

        ELSE.

          screen-active = '1'.

        ENDIF.

    ENDCASE.

    MODIFY SCREEN.

  ENDLOOP.   AT SELECTION-SCREEN.

  CLEAR sy-ucomm.   關于程式的說明: (1)該程式可以根據使用者選擇了P1或P2,決定顯示工廠還是物料号在螢幕上; (2)這裡 USER-COMMAND uc是關鍵,它代表使用者點選 RADIOBUTTON GROUP g1上的任一選項時,都将觸發PAI,并且Function code為 'UC'。     在CLEAR sy-ucomm.這裡打個斷點即可觀察sy-ucomm的值。 (3)MODIF ID 用于對螢幕元素進行分組,這在螢幕元素較多時更有用處,邏輯清晰。     這裡的PBO(AT SELECTION-SCREEN OUTPUT)就是根據使用者的選擇,決定不同組的螢幕元素是隐藏或顯示。 (4)與Radio Button(單選框)相似,Check Box(複選框)和List Box(下拉框)也可以觸發PAI。不過普通的螢幕編輯框則不支援,必須借助回車才可以觸發PAI。

繼續閱讀