天天看點

選擇螢幕折疊功能

效果圖

選擇螢幕折疊功能
選擇螢幕折疊功能

參考代碼

REPORT ZLM_SCREEN1.

TABLES SSCRFIELDS.

"展開--關閉按鈕

SELECTION-SCREEN: PUSHBUTTON /2(10) B_OPEN

                      USER-COMMAND F_OPEN MODIF ID M_O,    "open

                  PUSHBUTTON /2(10)  B_CLS

                      USER-COMMAND F_CLS  MODIF ID M_C.    "close

"選擇螢幕

SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_ID TYPE STRING MODIF ID M_C.

SELECTION-SCREEN END OF BLOCK B01.

PARAMETERS: P_FLG TYPE C NO-DISPLAY.

INITIALIZATION.

  "添加兩個圖示

  CONCATENATE ICON_EXPAND: '打開' '' INTO B_OPEN,

               '打開' '' INTO B_OPEN.

  CONCATENATE ICON_COLLAPSE: '關閉' '' INTO B_CLS,

                '關閉' '' INTO B_CLS.

  "預設是 關閉狀态,點打開才能看到選擇螢幕

  P_FLG = 'X'.

AT SELECTION-SCREEN.

  CASE SSCRFIELDS-UCOMM.

    WHEN 'F_OPEN'.     "打開

      CLEAR P_FLG.

    WHEN 'F_CLS'.       "關閉

      P_FLG = 'X'.

  ENDCASE.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.

    "修改螢幕顯示狀态

    PERFORM CLOSE_BLOCK USING:  P_FLG 'M_O' 'X',

                                                            P_FLG 'M_C' SPACE.

  ENDLOOP.

*&---------------------------------------------------------------------*

*&      Form  CLOSE_BLOCK

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->VALUE            text

*      -->(U_CLOSE_BLOCK)  text

*      -->U_MODIFY_ID      text

*      -->U_CONVERT        text

*----------------------------------------------------------------------*

FORM CLOSE_BLOCK USING VALUE(P_FLAG) LIKE P_FLG

                     P_MODIFY_ID LIKE SCREEN-GROUP1

                     P_CONVERT."顯示内容辨別

  IF P_CONVERT IS NOT INITIAL.

    IF P_FLAG IS INITIAL.

      P_FLAG = 'X'.

    ELSE.

      CLEAR P_FLAG.

    ENDIF.

  ENDIF.

  IF ( SCREEN-GROUP1 = P_MODIFY_ID )

    AND (  P_FLAG IS NOT INITIAL ).

    SCREEN-ACTIVE = '0'.

    MODIFY SCREEN.

  ENDIF.

ENDFORM.                    "close_block 

選擇螢幕折疊功能