SAP/ABAP

Radio Button Control

JobKea 2025. 6. 9. 12:20
반응형

Select Screen 에서 Radio Button 을 컨트롤 할떄 active 로 하면 숨김 처리가 되서 한동안 찾아보았다.

 

알고보니 input 옵션으로 제어 할 수있어서 아래와 같이 소스를 업로드 하여 작성해둔다. 

 

screen-active 1. " 숨김처리

screen-input 1. " 비활성화 처리 

 

" Selection Screen 
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-t04.
  SELECTION-SCREEN  BEGIN OF LINE.
    SELECTION-SCREEN POSITION 2.
    PARAMETERS : p_r21 RADIOBUTTON GROUP r2 DEFAULT 'X'.
    SELECTION-SCREEN COMMENT (8) TEXT-s05 FOR FIELD p_r21. " Not yet .

    PARAMETERS : p_r22 RADIOBUTTON GROUP r2.
    SELECTION-SCREEN COMMENT (8) TEXT-s06 FOR FIELD p_r22. " Draft .

    PARAMETERS : p_r23 RADIOBUTTON GROUP r2 .
    SELECTION-SCREEN COMMENT (14) TEXT-s07 FOR FIELD p_r23. " Assigned bank .

    PARAMETERS : p_r24 RADIOBUTTON GROUP r2 .
    SELECTION-SCREEN COMMENT (12) TEXT-s08 FOR FIELD p_r24. " Opened .

    PARAMETERS : p_r25 RADIOBUTTON GROUP r2 .
    SELECTION-SCREEN COMMENT (12) TEXT-s09 FOR FIELD p_r25. " Canceled.

    PARAMETERS : p_r26 RADIOBUTTON GROUP r2 .
    SELECTION-SCREEN COMMENT (12) TEXT-s10 FOR FIELD p_r26. " Closed.

    PARAMETERS : p_r27 RADIOBUTTON GROUP r2 .
    SELECTION-SCREEN COMMENT (12) TEXT-s11 FOR FIELD p_r27. " All .

  SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b3.


" "AT SELECTION-SCREEN OUTPUT" 이벤트에 작성 

" 필드 표기 컨트롤
LOOP AT SCREEN.
    " Radio Control
    CASE 'X'.
      " Import Request Due List
      WHEN p_r01.
        CLEAR : p_r22, p_r23, p_r24,  p_r25, p_r26, p_r27.
        p_r21 = gc_x.
        " Net Yet
        IF screen-name CS 'P_R21'.
*          screen-active = 1. " 숨김처리
          screen-input = 1.   " 비활성화 처리 
        ELSEIF screen-name CS 'P_R2'.
*          screen-active = 0.
          screen-input = 0.
        ENDIF.
      "Assign bank
      WHEN p_r02.
        CLEAR : p_r21, p_r23, p_r24,  p_r25, p_r26, p_r27.
        p_r22 = gc_x.

        " Draft 만 활성화
        IF screen-name EQ 'P_R22'.
*          CLEAR : p_r21, p_r23, p_r24,  p_r25, p_r26, p_r27.
*          screen-active = 1.
          screen-input = 1.
        ELSEIF screen-name CS 'P_R2'.
*          screen-active = 0.
          screen-input = 0.
        ENDIF.

      " Open L/C
      WHEN p_r03.
        CLEAR : p_r21, p_r22, p_r23, p_r24,  p_r25,  p_r26, p_r27.
        p_r27 = gc_x.
        " Assigned Bank, Opened, Canceled, Closed, All
        IF screen-name EQ 'P_R23' OR
           screen-name EQ 'P_R24' OR
           screen-name EQ 'P_R25' OR
           screen-name EQ 'P_R26' OR
           screen-name EQ 'P_R27' .
*          screen-active = 1.
          screen-input = 1.
        ELSEIF screen-name CS 'P_R2'.
*          screen-active = 0.
          screen-input = 0.
        ENDIF.
      WHEN OTHERS.
*        screen-active = 0.
    ENDCASE.
ENDLOOP.
반응형