SCREEN 구성 및 제어 (SELECTION-SCREEN, MODIF ID)

happyivory·2023년 11월 10일
0

화면

목록 보기
1/1
post-thumbnail

REPORT ZTEST_SCREEN.

INCLUDE ZIKD002_SCREEN_SEL.
INCLUDE ZIKD002_SCREEN_F01.

*&---------------------------------------------------------------------*
*&   INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
  PERFORM INITIALIZATION.

*&---------------------------------------------------------------------*
*&   AT SELECTION-SCREEN OUTPUT
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
  PERFORM MODIFY_SCREEN.

INCLUDE ZTEST_SCREEN_SEL.

*&---------------------------------------------------------------------*
*& Include          ZTEST_SCREEN_SEL
*&---------------------------------------------------------------------*

SELECTION-SCREEN COMMENT 1(70) TEXT-T01.
SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-BT1.
PARAMETERS: P_GJAHR TYPE BKPF-GJAHR,
            P_INFILE TYPE RLGRAP-FILENAME DEFAULT 'C:\'.
SELECTION-SCREEN END OF BLOCK B01.

SELECTION-SCREEN BEGIN OF BLOCK B02 WITH FRAME TITLE TEXT-BT2.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_ALL TYPE BOOLEAN RADIOBUTTON GROUP RAD1
                  USER-COMMAND CLICK DEFAULT 'X'.
SELECTION-SCREEN COMMENT (40) TEXT-T02 FOR FIELD P_ALL.
PARAMETERS: P_PART TYPE BOOLEAN RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN COMMENT (40) TEXT-T03 FOR FIELD P_PART.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B02.

*&---------------------------------------------------------------------*
*  MODIF ID
*  - 화면 구성요소의 속성(입력 가능, 불가능 등)을 일괄적으로 변경하기 위해
*    해당 변수들을 GROUP으로 묶어줌
*  - AT SELECTION-SCREEN OUTPUT 에서 사용
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B03 WITH FRAME TITLE TEXT-BT3.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_CHK1 AS CHECKBOX DEFAULT 'X' MODIF ID M1.
SELECTION-SCREEN COMMENT 3(40) TEXT-C01 MODIF ID M1 FOR FIELD P_CHK1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_CHK2 AS CHECKBOX MODIF ID M1.
SELECTION-SCREEN COMMENT 3(40) TEXT-C02 MODIF ID M1 FOR FIELD P_CHK1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_CHK3 AS CHECKBOX MODIF ID M1.
SELECTION-SCREEN COMMENT 3(40) TEXT-C03 MODIF ID M1 FOR FIELD P_CHK1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B03.

SELECTION-SCREEN BEGIN OF BLOCK B04 WITH FRAME TITLE TEXT-BT3.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(70) TEXT-C04 MODIF ID M2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN ULINE MODIF ID M2.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_PARAM2 AS CHECKBOX MODIF ID M2.
SELECTION-SCREEN COMMENT 3(70) TEXT-C05 MODIF ID M2 FOR FIELD P_PARAM2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B04.

PERFORM MODIFY_SCREEN.

FORM MODIFY_SCREEN .

  LOOP AT SCREEN.
    IF P_ALL = ABAP_TRUE.
      IF SCREEN-GROUP1 = 'M1'.
        SCREEN-ACTIVE = 0.
        MODIFY SCREEN.
      ENDIF.
    ELSEIF P_PART = ABAP_TRUE.
      IF SCREEN-GROUP1 = 'M2'.
        SCREEN-ACTIVE = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDIF.
  ENDLOOP.

ENDFORM.

결과 화면

선택 1 클릭 시

선택 2 클릭 시

0개의 댓글