selection screen에서..
라디오버튼이 여러개 있을 때,
라디오버튼1에 체크가 되면 라디오버튼3은 보이고 라디오버튼4는 안보이거나 비활성화 시키고
반대로
라디오버튼2에 체크가 되면 라디오버튼 3은 보이지 않거나 비활성화, 라디오버튼4는 보이게
설정할 수 있는 방법이 있나요?
라디오버튼 선택이 바뀔때마다 일어나는 이벤트가 있으면 어떻게 제어할 수 도 있을 것 같은데...
도움 부탁드립니다.
댓글 3
-
남군
2010.02.17 19:56
-
요요
2010.02.17 20:44
PARAMETERS : pa_ra01 RADIOBUTTON GROUP gr1 DEFAULT 'X' USER-COMMAND zzzz,
pa_ra02 RADIOBUTTON GROUP gr1,
pa_ra03 RADIOBUTTON GROUP gr1,
pa_ra04 RADIOBUTTON GROUP gr1.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
"" 1, 2번째는 항상 선택 가능하게...
IF screen-name = 'PA_RA01' OR
screen-name = 'PA_RA02'.
screen-input = '1'.
MODIFY SCREEN.
CONTINUE.
ENDIF.
CASE 'X'.
WHEN pa_ra01.
CASE screen-name.
WHEN 'PA_RA04'. screen-input = '1'.
WHEN OTHERS. screen-input = '0'.
ENDCASE.
WHEN pa_ra02.
CASE screen-name.
WHEN 'PA_RA04'. screen-input = '0'.
WHEN OTHERS. screen-input = '1'.
ENDCASE.
WHEN pa_ra03.
WHEN pa_ra04.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
대충 이정도하면 되지 않을까 싶네요. INVISIBLE 이나 ACTIVE 속성으로 하면
라디오버튼이 안보여서 편의상 INPUT 으로 제어했습니다.
-
Test
2010.02.17 21:04
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(10) FOR FIELD r_cars.
PARAMETERS : r_cars RADIOBUTTON GROUP rgb USER-COMMAND usd .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 20(10) FOR FIELD r_toyota .
PARAMETERS : r_toyota RADIOBUTTON GROUP rgb1 DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 20(10) FOR FIELD r_ford .
PARAMETERS : r_ford RADIOBUTTON GROUP rgb1 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(10) FOR FIELD r_bus .
PARAMETERS : r_bus RADIOBUTTON GROUP rgb DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 20(10) FOR FIELD r_volvo .
PARAMETERS : r_volvo RADIOBUTTON GROUP rgb2 USER-COMMAND com.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 20(10) FOR FIELD r_merced .
PARAMETERS : r_merced RADIOBUTTON GROUP rgb2 DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 40(10) FOR FIELD r_single .
PARAMETERS : r_single RADIOBUTTON GROUP rgb3 DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 40(10) FOR FIELD r_double.
PARAMETERS : r_double RADIOBUTTON GROUP rgb3.
SELECTION-SCREEN END OF LINE.
AT SELECTION-SCREEN OUTPUT. " AT SELECTION-SCREEN OUTPUT
IF r_cars = 'X'. " If R_CURS radiobutton is selected
LOOP AT SCREEN . " Looping at screen
IF screen-name CS 'R_VOLVO' OR
screen-name CS 'R_MERCED' OR
screen-name CS 'R_SINGLE' OR
screen-name CS 'R_DOUBLE'.
screen-active = 0. " Hiding the R_VOLVO, R_MERCED.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN .
IF screen-name CS 'R_TOYOTA' OR
screen-name CS 'R_FORD'.
screen-active = 0.
MODIFY SCREEN.
ELSEIF r_volvo NE 'X' AND
( screen-name CS 'R_SINGLE' OR
screen-name CS 'R_DOUBLE' ).
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
함 활용해 보세요..
SELECTION SCREEN 상 입력 파라미터의 상태 변경은 SCREEN 속성을 이용하면 가능합니다.
단, 위와 같은 상황에선 라디오 버튼 1,2 와 3,4는 각각의 그룹으로 묶여 있어야 하며
이벤트는 AT SELECTION-SCREEN OUTPUT 블럭에 구현 하시면 될것 같습니다.