ABAP

[ABAP] Report프로그램 동적 Radio Button 제어

ABAPer. 2022. 11. 15. 12:41

라디오 버튼 선택시 입력값이 달라지고, 출력값도 달라지게 설정했습니다. 전체버튼 선택시 데이터 전체가 출력됩니다.

/코드/

 

[초기화면]


INITIALIZATION.
  AT SELECTION-SCREEN OUTPUT. "초기화면 제어해줍니다.

  PERFORM radio. "PERFORM문을 이용해 라디오버튼을 호출해줍니다. 

 

START-OF-SELECTION. "데이터 출력제어  

 PERFORM select. "PERFORM문을 이용해 데이터를 출력했습니다. 


[라디오버튼설정]


SELECTION-SCREEN BEGIN OF BLOCK SEARCH WITH FRAME TITLE TEXT-001. "BLOCK을이용해 TITLE을 설정 
  SELECTION-SCREEN BEGIN OF BLOCK BLOCK1.

    SELECTION-SCREEN BEGIN OF LINE. "LINE을이용해 라디오버튼 가로정렬 

      PARAMETERS PA_LIM_1  RADIOBUTTON GROUP LIM DEFAULT'X' USER-COMMAND UCOMM.

                                                                                                                      " USER-COMMAND UCOMM 동적설정!꼭입력
      SELECTION-SCREEN COMMENT (6TEXT-R01 FOR FIELD PA_LIM_1"입고 "TEXT로 이름을 지정해줍니다.
                                                                                                         
      PARAMETERS PA_LIM_2  RADIOBUTTON GROUP LIM .
      SELECTION-SCREEN COMMENT (6TEXT-R02 FOR FIELD PA_LIM_2"출고

      PARAMETERS PA_LIM_3  RADIOBUTTON GROUP LIM .
      SELECTION-SCREEN COMMENT (6TEXT-R03 FOR FIELD PA_LIM_3"전체

    SELECTION-SCREEN END OF LINE.

  SELECTION-SCREEN END OF BLOCK BLOCK1.

SELECTION-SCREEN END OF BLOCK SEARCH .

 

[라디오버튼 제어]

 

FORM SET_RADIO.

  LOOP AT SCREEN. "LOOP AT SCREEN구문으로 라디오버튼을 제어합니다.
    IF PA_LIM_1 'X'

      IF SCREEN-GROUP1 'ID1'.
        SCREEN-INPUT 1. "입력값 1(활성) / 0(비활성)
        SCREEN-INVISIBLE 0. "1(안보이게) / 0(보이게)

      ENDIF.

      IF SCREEN-GROUP1 'ID2'.
        SCREEN-INPUT 0.
        SCREEN-INVISIBLE 1.

      ENDIF.
      GV_STATUS = '출고'. "SELECT 할때 출력값을 제어해줍니다. 


      MODIFY SCREEN.
    REFRESH SO_DATE2,SO_NUM2,SO_PUR,SO_MTR2. "입력값이 다음 라디오버튼을 선택했을때 REFRESH됩니다. 

    ELSEIF PA_LIM_2 'X'.


      IF SCREEN-GROUP1 'ID2'.
        SCREEN-INPUT 1.
        SCREEN-INVISIBLE 0.
      ENDIF.

      IF SCREEN-GROUP1 'ID1'.
        SCREEN-INPUT 0.
        SCREEN-INVISIBLE 1.
      ENDIF.

      GV_STATUS '입고'. "SELECT 할때 출력값을 제어해줍니다. 


      MODIFY SCREEN.
      REFRESH SO_PCOD,SO_NUM,SO_DATE,SO_MTR.

    ELSEIF PA_LIM_3 'X'.


      IF SCREEN-GROUP1 'ID2'.
        SCREEN-INPUT 0.
        SCREEN-INVISIBLE 1.
      ENDIF.

      IF SCREEN-GROUP1 'ID1'.
        SCREEN-INPUT 0.
        SCREEN-INVISIBLE 1.
      ENDIF.

      GV_STATUS '입고''출고'.


      MODIFY SCREEN.
      REFRESH SO_PCOD,SO_NUM,SO_DATE,SO_MTR,SO_DATE2,SO_NUM2,SO_PUR,SO_MTR2.

    ENDIF.

    CLEARGS_OUTGS_OUT2.
  ENDLOOP.

ENDFORM.