parameter 을 이용 하여 radio 버튼을 2개 생성후 그룹화 하였습니다.
첫번째 radio 버튼을 클릭하였을때 나타 나는 입력 필드와
두번째 radio버튼을 클릭하였을때 나타나는 입력 필드를
다르게 만들고 싶습니다. 다시 말하면 radio 버튼을 클릭시에 나타나는 입력 필드가 변경이 되는것입니다.
.
이방법 저 방법 찾아 보긴했는데. 노력 부족인지 찾을수가 없네요..
댓글 8
-
이종원
2007.04.13 18:37
-
kwon09
2007.04.13 18:47
아래의 내용이 도움이 되시길 ...
RADIOBUTTON 사용시 즉시 EVENT 를 실행하기 위해선 USER-COMMAND 옵션이 필요합니다.
PARAMETERS: p_radi1 RADIOBUTTON GROUP radi DEFAULT 'X' USER-COMMAND CCC,
p_radi2 RADIOBUTTON GROUP radi.
SELECT-OPTIONS: s_carrid FOR sflight-carrid MODIF ID ABC,
s_connid FOR sflight-connid NO-EXTENSION MODIF ID CDE,
s_fldate FOR sflight-fldate NO INTERVALS,
s_curre FOR sflight-currency NO-EXTENSION
NO INTERVALS.
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT .
IF p_radi1 = 'X'.
LOOP AT SCREEN.
IF screen-group1 = 'ABC' AND
screen-group3 = 'VPU'.
screen-active = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF screen-group1 = 'ABC' AND
screen-group3 = 'VPU'.
screen-active = '1'.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'CDE'.
screen-active = '0'.
MODIFY SCREEN.
ENDIF.
*
ENDLOOP.
ENDIF.
START-OF-SELECTION.
-
bd
2007.04.13 22:10
소스 정말 감사 드림니다... ^^
질문 하나 더 드릴께요 loop 문안에 group 안에 vpu 에 값은....어디서 호출이 되는건지....
소스 안에 찾아 봐도..없는 부분이라서 ^^
-
kwon09
2007.04.13 22:50
loop at screen .. endloop. 부분을 디버깅해 보시면 알수 있습니다.
select-option 부분은 일반 필드가 아니라 table 구조형태로 기본적으로 group 3,4 값이 setting 되며
하나의 필드로 인식됩니다.
-
이종원
2007.04.14 00:00
이런 방식도 있었군요...제가 소스를 테스트 해보니깐 잘 적용이 되는데요...GROUP3 = 'VPN' 이게 의미하는게 먼지 모르겟네요.
아래의 굵은 글씨로 변경해도 효과는 같은데...혹시 어떤 차이점이 있는지 알고 싶습니다.
PARAMETERS: p_radi1 RADIOBUTTON GROUP radi DEFAULT 'X' USER-COMMAND CCC,
p_radi2 RADIOBUTTON GROUP radi.
SELECT-OPTIONS: s_carrid FOR sflight-carrid MODIF ID ABC,
s_connid FOR sflight-connid NO-EXTENSION MODIF ID CDE,
s_fldate FOR sflight-fldate NO INTERVALS,
s_curre FOR sflight-currency NO-EXTENSION
NO INTERVALS.
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT .
IF p_radi1 = 'X'.
ELSE.
LOOP AT SCREEN.
IF screen-group1 = 'CDE'.
screen-active = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
START-OF-SELECTION.
-
kwon09
2007.04.14 00:54
위에 말씀드린내용과 같습니다.
select-option 화면필드( s_connid) 는 표현형식으로 s_connid-low, s_connid-high, s_connid-text, s_connid-pushbutton .... 등의
변수명이 s_connid 한개의 필드로 인식 될수 있습니다. 프로그램을 코딩시에는 이들중 변수각각에 대해 제어를 할수 있지만
화면을 제어할경우 그렇게 까지는 하지 않아도 됩니다.
따라서 위의 소스는 첨과 차이점이 없습니다. 쩝~.. 제가 설명해도 좀 이상하긴 한데.. ㅋㅋㅋ 이해해 주세요.
-
이종원
2007.04.14 01:38
잘 알겠습니다. 유용하게 사용하도록 하겠습니다.
-
ABAP쟁이
2008.10.08 22:40
감사합니다 잘쓰겠습니다.
흠 RADIO 버튼 누개를 생성하시고 FCODE 입력하시면 될것 같은데요.
각 입력값에 대한 폼그룹을 생성하면 될것 같구요.
방법은 두가지 인것 같습니다. 폼을 두개를 만들거나 하니면 입력 필드를 몇개를 숨기거나..
pbo 모듈에는 스크린 보이거나 숨긴 기능만 넣어주면 될것 같은데..
PBO
MODULE DISPLAY_FORM.
FORM DISPLAY_FORM OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUB1 = 'XXXX' AND SCREEN-FIELDNAME = 'XXX'.
SCREEN-ACTIVE = '0'.
ENDIF.
ENDLOOP.
ENDFORM.
위의 소스처럼 원하는 필드나 전체 그룹을 보이거나 숨기거나 역활만 잡으면 될것 같네요.
제가 보기엔 각 필드를 숨기는것이 설계구조상 맞을것 같은데...
잘 응용해 보세요.