본문 바로가기

SAP/ABAP

스크린에서 버튼을 tree 처럼 만들기

어디서 인지 찾아서 원노트에 저장되어 있는 소스 출처는 알 수 없어요…

   

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

*& Report  YBKTEMP

*&

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

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

* 스크린에서 버튼을 tree 처럼 만들기.

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

REPORT YBKTEMP.

   

TABLES :  SSCRFIELDS.

   

DATA G_CODE TYPE SSCRFIELDS-UCOMM.  "FUNCTION CODE

   

INCLUDE <ICON>.

   

PARAMETERS P_CB0(1TYPE C NO-DISPLAY,   "Close Block 0

             P_CB1(1TYPE C NO-DISPLAY.   "Close Block 1

   

SELECTION-SCREEN FUNCTION KEY 1."expand all blocks

SELECTION-SCREEN FUNCTION KEY 2"collapse all blocks

   

***************** Block 00 *** Description data file

SELECTION-SCREEN PUSHBUTTON /1(72PUSHB_O0          "Open Block 00

                   USER-COMMAND UCOMM_O0 MODIF ID MO0,

                   PUSHBUTTON /1(72PUSHB_C0          "Close Block 00

                   USER-COMMAND UCOMM_C0 MODIF ID MC0.

SELECTION-SCREEN BEGIN OF BLOCK B0 WITH FRAME TITLE TEXT-000.

PARAMETERSP_DOWN00 TYPE DOWNLOADX AS CHECKBOX MODIF ID MC0.

SELECTION-SCREEN END OF BLOCK B0.

   

***************** Block 01 *** Report 01

SELECTION-SCREEN:

                  PUSHBUTTON /1(72PUSHB_O1          "Open Block 01

                  USER-COMMAND UCOMM_O1 MODIF ID MO1,

                  PUSHBUTTON /1(72PUSHB_C1          "Close Block 01

                  USER-COMMAND UCOMM_C1 MODIF ID MC1.

   

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

PARAMETERSP_REP01 AS CHECKBOX MODIF ID MC1."DEFAULT 'X'.

PARAMETERSP_VAR01 LIKE VARID-VARIANT MODIF ID MC1.

SELECTION-SCREEN END OF BLOCK B1.

   

INITIALIZATION.

   

* Close Selection-Screen

  P_CB0 'X'P_CB1 'X'.

* Set Text & Icon for application bar

  CONCATENATE ICON_EXPAND'Expand all blocks'

         INTO SSCRFIELDS-FUNCTXT_01.

  CONCATENATE ICON_COLLAPSE'Collapse all blocks'

         INTO SSCRFIELDS-FUNCTXT_02.

   

* Set Text & Icon for Pushbutton

  CONCATENATE ICON_COLLAPSE'Block 00' INTO PUSHB_C0,

                             'Block 01' INTO PUSHB_C1 .

   

  CONCATENATE ICON_EXPAND'Block 00' INTO PUSHB_O0,

                           'Block 01' INTO PUSHB_O1.

   

AT SELECTION-SCREEN.

  G_CODE SSCRFIELDS-UCOMM.

  CASE G_CODE.

*Expand all blocks

    WHEN 'FC01'.

      PERFORM EXPAND_ALL_BLOCKS.

*Collapse all blocks

    WHEN 'FC02'.      "Collapse all blocks

      PERFORM COLLAPSE_ALL_BLOCKS.

*Open/close individual block functions

    WHEN 'UCOMM_O0'.                   "Open Block 0

      CLEAR P_CB0.

    WHEN 'UCOMM_C0'.                   "Close Block 0

      P_CB0 'X'.

    WHEN 'UCOMM_O1'.                   "Open Block 1

      CLEAR P_CB1.

    WHEN 'UCOMM_C1'.                   "Close Block 1

      P_CB1 'X'.

  ENDCASE.

   

AT SELECTION-SCREEN OUTPUT.

*modify screen according predefined screen group

  LOOP AT SCREEN.

    CASE SCREEN-GROUP1.

      WHEN 'MC0'.

        PERFORM CLOSE_BLOCK USINGP_CB0 'MC0' SPACE.

      WHEN 'MO0'.

        PERFORM CLOSE_BLOCK USINGP_CB0 'MO0' 'X'  .

      WHEN 'MC1'.

        PERFORM CLOSE_BLOCK USINGP_CB1 'MC1' SPACE.

      WHEN 'MO1'.

        PERFORM CLOSE_BLOCK USINGP_CB1 'MO1' 'X'  .

      WHEN OTHERS.

        CONTINUE.

    ENDCASE.

  ENDLOOP.

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

*&      Form  close_block

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

FORM CLOSE_BLOCK USING  VALUE(I_CLOSE_BLOCKLIKE P_CB1

                        VALUE(I_MODIFY_IDLIKE SCREEN-GROUP1

                        VALUE(I_CONVERTTYPE CHAR1.

  IF NOT I_CONVERT IS INITIAL.

    IF I_CLOSE_BLOCK IS INITIAL.

      I_CLOSE_BLOCK 'X'.

    ELSE.

      CLEAR I_CLOSE_BLOCK.

    ENDIF.

  ENDIF.

   

  IF SCREEN-GROUP1 I_MODIFY_ID )

  AND NOT I_CLOSE_BLOCK IS INITIAL ).

    SCREEN-ACTIVE '0'.

    MODIFY SCREEN.

  ENDIF.

   

ENDFORM.                    "close_block

   

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

*&      Form  collapse_all_blocks

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

FORM COLLAPSE_ALL_BLOCKS.

  P_CB0 'X'.P_CB1 'X'.

ENDFORM.                    "collapse_all_blocks

   

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

*&      Form  expand_all_blocks

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

FORM EXPAND_ALL_BLOCKS.

  CLEARP_CB0,P_CB1  .

ENDFORM.                    "expand_all_blocks

'SAP > ABAP' 카테고리의 다른 글

Global MACRO  (0) 2015.11.26
Useful ABAP Package  (0) 2015.11.18
ALV DISPLAY화면에 SCREEN 1000 넣기  (0) 2014.08.25
SMW0  (0) 2014.08.25
= '' 와 = ' '가 같다?  (0) 2010.07.19