TABLES:lfb1, lfa1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: display RADIOBUTTON GROUP g1,
changing RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
SELECT-OPTIONS vender FOR lfb1-lifnr MODIF ID ven.
SELECT-OPTIONS accgroup FOR lfa1-ktokk MODIF ID ven.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME.
PARAMETER sel_file TYPE c LENGTH 40 MODIF ID sel.
SELECTION-SCREEN END OF BLOCK b3.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF display = 'X'.
IF screen-group1 = 'sel'.
screen-active = 0.
ELSEIF screen-group1 = 'ven'.
SCREEN-ACTIVE = 1.
ENDIF.
ELSEIF changing = 'X'.
IF screen-group1 = 'ven'.
screen-active = 0.
ELSEIF screen-group1 = 'sel'.
SCREEN-ACTIVE = 1.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
위에서 보시는 바와 같이 블럭을 3개를 잡아 놓고, 블럭 하나에 라디오 버튼 두개를 두었습니다.
display를 누르면 block b3이 없어지고 block b2만 남게하고
changing을 누르면 block b2가 없어지고 block b3만 남게하려고 합니다.
디버깅을 해보면 loop at screen을 전혀 먹지 않습니다. ㅠㅠ
부디 이 미련한 놈에게 조언 좀 부탁드립니다;; 몇시간째 이것때문에 허리도 못 펴고 있어요;;
댓글 3
-
Test
2010.02.25 11:00
-
페리
2010.02.25 16:44
TABLES:LFB1, LFA1.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: DISPLAY RADIOBUTTON GROUP G1 USER-COMMAND RDO DEFAULT 'X',
CHANGING RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
SELECT-OPTIONS VENDER FOR LFB1-LIFNR MODIF ID VEN.
SELECT-OPTIONS ACCGROUP FOR LFA1-KTOKK MODIF ID VEN.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME.
PARAMETER SEL_FILE TYPE C LENGTH 40 MODIF ID SEL.
SELECTION-SCREEN END OF BLOCK B3.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF DISPLAY = 'X'.
IF SCREEN-GROUP1 = 'SEL'.
SCREEN-ACTIVE = 0.
ELSEIF SCREEN-GROUP1 = 'VEN'.
SCREEN-ACTIVE = 1.
ENDIF.
ELSEIF CHANGING = 'X'.
IF SCREEN-GROUP1 = 'VEN'.
SCREEN-ACTIVE = 0.
ELSEIF SCREEN-GROUP1 = 'SEL'.
SCREEN-ACTIVE = 1.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
요렇게 하면 되겠네요
PARAMETERS: DISPLAY RADIOBUTTON GROUP G1 USER-COMMAND RDO DEFAULT 'X',
user-command를 넣어주셔야 라디오버튼이 바뀔때마다 output을 탑니다.
그리고 default는 처음 실행시에 output에서 IF display = 'X'를 구별하기 위해서 꼭 넣어주셔야하구요
-
Fjohnny
2010.03.01 04:18
감사합니다. 덕분에 살았습니다 ㅠ
지금 서버가 다운되어 테스트를 할수가 없어 못했는데, 한눈에 보이는게 있네요....변경해야할부분 표시 해 보겠습니다.
확인하고 함 변경해서 해보세요..
LOOP AT SCREEN.
IF display = 'X'.
IF screen-group1 = 'sel'. ==> 'SEL' 즉 대문자로 바꾸라는 겁니다..
screen-active = 0.
ELSEIF screen-group1 = 'ven'. ==> 'VEN' 마찬가지구요...나머지도 모두 대문자로 바꿔보세요..
SCREEN-ACTIVE = 1.
ENDIF.
ELSEIF changing = 'X'.
IF screen-group1 = 'ven'.
screen-active = 0.
ELSEIF screen-group1 = 'sel'.
SCREEN-ACTIVE = 1.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.