예제 소스를 보면
마지막 부분에
SORT itab.
PERFORM loop_at_itab.
SORT itab.
PERFORM loop_at_itab.
SORT itab STABLE.
PERFORM loop_at_itab.
SORT itab DESCENDING BY land weight ASCENDING.
PERFORM loop_at_itab.
이렇게 해서 SORT를 해주는데 첫번째와 두번째는 SORT 하는 방법이 같은데
결과 값이 왜 다른지 알고싶습니다.
댓글 5
-
e-abap
2008.05.21 05:28
-
ABAP짱!
2008.05.21 17:12
340 페이지 예제 7-4-4 요~ -
ABAP짱!
2008.05.21 17:13
프로그램 이름은 Z07_016 입니다. -
e-abap
2008.05.22 05:03
죄송합니다. 예제가 잘못되었습니다.
이 두번 기술되었네요.
그리고 sort 하기 전에
PERFORM loop_at_itab. 구문을 수행하기때문에 정렬되기 이전의 데이터를 먼저 화면에 write합니다. 이걸 오해하신거 같네요.
소스를 다음과 같이 수정합니다.
REPORT Z07_016.
DATA: BEGIN OF line,
land(5) TYPE c,
name(10) TYPE c,
age TYPE i,
weight TYPE p DECIMALS 2,
END OF line.
DATA itab LIKE STANDARD TABLE OF line WITH NON-UNIQUE KEY land.
line-land = 'SEOUL'. line-name = 'CHO'.
line-age = 20. line-weight = '80.00'.
APPEND line TO itab.
line-land = 'DAEGU'. line-name = 'KIM'.
line-age = 35. line-weight = '45.00'.
APPEND line TO itab.
line-land = 'BUSAN'. line-name = 'LEE'.
line-age = 40. line-weight = '95.00'.
APPEND line TO itab.
line-land = 'SUWON'. line-name = 'HAN'.
line-age = 18. line-weight = '50.00'.
APPEND line TO itab.
PERFORM loop_at_itab.
SORT itab.
PERFORM loop_at_itab.
SORT itab STABLE.
PERFORM loop_at_itab.
SORT itab DESCENDING BY land weight ASCENDING.
PERFORM loop_at_itab.
FORM loop_at_itab.
LOOP AT itab INTO line.
WRITE: / line-land, line-name, line-age,
line-weight.
ENDLOOP.
SKIP.
ENDFORM.
-
ABAP짱!
2008.05.23 17:42
네 감사합니다 ^^
페이지와 프로그램 이름을 적어주세요~