파일 1에 제가 만든 파일이 있습니다.
미션이 하나 있어서 새벽까지 연구를 하는데 F1 헬프에서도 잘 못찾아서..
제가 궁금한것은
라디오 버튼을 생성하고 (pr_rad1, pr_rad2, pr_rad3) 이것을 한 그룹(g1)으로 만든 상태입니다.
그런데 여기서 pr_rad1 을 클릭하면
sorting 을 name 을 내림차순으로 정렬하고..
pr_rad2 를 클릭하면 age를 내림차순으로 정렬하고.... 뭐 이런식으로 만들려고 합니다.
문제는!!!! check box 는 = 'X' 라고 하면 체크되었다는 의미가 되어서
if 문 돌릴때 문제가 없었는데
라디오 버튼은 case 로 돌릴려고 하거든요.
그러면 명령어를 어떻게 줘야 하는지가 의문입니다.
제 생각대로
case g1.
when pr_rad1 = 'X'.
sort by name descending.....
이런식으로 만들었는데 말도 안되는 소리하지 말라고 ^^; 아밥이 말하더라구요;;;
G1 부터가 뭔지 모르겠다고. data 선언이나 하고 말하라구요^^;
어떻게 인식을 시켜야 할까요!? 고수님들의 답변 부탁드려요!
TABLES : zaddressbc13.
DATA : gv_zeb TYPE i,
gv_cnt TYPE i,
gs_add TYPE zaddressbc13,
gt_add LIKE TABLE OF gs_add.
SELECTION-SCREEN : BEGIN OF BLOCK a1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS : s_name FOR zaddressbc13-name NO INTERVALS.
SELECT-OPTIONS : s_age FOR zaddressbc13-age.
SELECTION-SCREEN : END OF BLOCK a1.
PARAMETERS : pz_chk AS CHECKBOX.
SELECTION-SCREEN : BEGIN OF LINE.
PARAMETERS : sr_rad1 RADIOBUTTON GROUP g1.
SELECTION-SCREEN COMMENT 3(10) text-001 FOR FIELD sr_rad1.
PARAMETERS : sr_rad2 RADIOBUTTON GROUP g1.
SELECTION-SCREEN COMMENT 16(10) text-002 FOR FIELD sr_rad2.
PARAMETERS : sr_rad3 RADIOBUTTON GROUP g1.
SELECTION-SCREEN COMMENT 28(10) text-003 FOR FIELD sr_rad3.
SELECTION-SCREEN : END OF LINE.
SELECT * FROM zaddressbc13 INTO TABLE gt_add WHERE name IN s_name
AND age IN s_age.
FORMAT COLOR 3.
WRITE:/(59) sy-uline.
WRITE:/ sy-vline,(3) 'No.',
sy-vline, (10) 'Name',
sy-vline, (3) 'Age',
sy-vline, (30) 'Address',
sy-vline.
WRITE:/(59) sy-uline.
FORMAT RESET.
LOOP AT gt_add INTO gs_add.
gv_cnt = gv_cnt + 1.
*문제의 갈등 부분
* CASE .
* WHEN sr_rad1.
* SORT BY gs_add-name descending.
* WHEN sr_rad2.
* SORT BY gs_add-age descending.
* WHEN sr_rad3.
* EXIT.
* ENDCASE.
*갈등 부분 끝!
IF pz_chk = 'X'.
gv_zeb = gv_cnt MOD 2.
IF gv_zeb = 0.
FORMAT COLOR 5 INVERSE.
ELSEIF gv_zeb = 1.
FORMAT COLOR 6 INTENSIFIED ON INVERSE.
ENDIF.
WRITE:/ sy-vline,(3) gv_cnt,
sy-vline,(10) gs_add-name,
sy-vline,(3) gs_add-age,
sy-vline,(30) gs_add-address,
sy-vline.
WRITE:/(59) sy-uline.
ELSE.
WRITE:/ sy-vline,(3) gv_cnt,
sy-vline,(10) gs_add-name,
sy-vline,(3) gs_add-age,
sy-vline,(30) gs_add-address,
sy-vline.
WRITE:/(59) sy-uline.
ENDIF.
간단하게 소스 첨부 합니다.
댓글 4
-
Test
2010.02.14 12:45
-
Test
2010.02.14 12:51
참, Sort 부분도
SORT gs_add BY name descending.
SORT gs_add BY age descending.
이런식으로 SORT itabName BY FLD ASCENDING[DESCENDING]. 이 되너야 겠네요.
-
Abap consultant
2010.02.14 21:37
우왕^^ TEST 님의 친절한 답변 감사드립니다^-^ 지금 당장 테스트 해봐야겠어요!!
감사합니다!!!!
-
Abap consultant
2010.02.14 21:40
생각해보니 sorting 은 테이블에서 해야 되는데 스트럭쳐에다 명령어를 줬군요^^;
개편을 좀 해야되겠습니다.. ㅎㅎㅎ;;; 답변 감사드려용~
*문제의 갈등 부분
* CASE .
* ENDCASE.
*갈등 부분 끝!
* CASE . ==> CASE 'X'. 으로만 해 주면 됩니다.