날씨가 또 더워진거같습니다...
다름이 아니고 at first, at last, at new, at end 정확한 개념좀 갈켜 주세여..
예를 들어서도 좋쿠요... 아우 헥갈리네여.흠....
고생하십쇼...
댓글 5
-
쭌수야~!
2008.08.26 02:00
-
쭌수야~!
2008.08.26 02:17
at first, at last 는 보시면 바로 아실것 같고...
at new, at end 가 조금 헷갈리실텐데...
힌트를 드리자면...
at new 나 at end 가 타는 시점은...
at new 나 at end 뒤에 지정된 필드의 변경 시점 뿐만이 아니라...
해당 인터널테이블에서 지정된 필드의 앞부분(상위) 필드의 변경 시에도 탄다?! 정도입니다. ^^
-
DBnoid
2008.08.26 05:49
개인적으로 정리를 했었는데 올려드립니다..도움이 되시길....
---------------------------------------------------------------
* f 이전의 필드 중 하나라도 New 일 때 탄다.
* f 이후의 문자형 필드는 깨진다.
* f 이전 필드까지로 sort 되어져야한다.
AT NEW f.
ENDAT.
--------------------------------------------------------------------------
* f 이전 필드 모두의 중복이 끝나는 시점에 탄다.
* f 이후의 문자형 필드는 깨진다.
* f 이전 필드까지로 sort 되어져야한다.
AT END OF f
ENDAT.
--------------------------------------------------------------------------
* loop의 처음에 한번 탄다.
AT FIRST.
ENDAT.
--------------------------------------------------------------------------
* loop의 마지막에 한번 탄다.
AT LAST.
ENDAT.
--------------------------------------------------------------------------
* f의 변경이 발생할때 마다 탄다. 최초에도 탄다.
* 앞 필드와 관계없다. 문자형 필드라도 깨지지 않는다.
* f 필드로 sort 되어져야한다.
ON CHANGE OF f.
ENDON. -
gogo!
2008.08.27 20:08
LOOP AT GT_ITAB INTO GS_ITAB.
AT FIRST.
Loop구문이 처음으로 시작할때,
ENDAT.
AT NEW FIELD.
Field가 새롭게 시작할때,
ENDAT.
AT END OF FIELD.
Field가 끝날때,
ENDAT.
AT LAST.
Loop 구문이 끝날때,
ENDAT.
ENDLOOP.
이렇게 생각하고 있는데..
-
드라곤
2008.09.18 04:40
와... 좋은 설명 감사합니다.
이걸 한번 실행시켜보시지요...
DATA: BEGIN OF itab OCCURS 0,
fld_a(10),
fld_b(10).
DATA: END OF itab.
itab-fld_a = 'a'. itab-fld_b = 'b'. APPEND itab.
itab-fld_a = 'a'. itab-fld_b = 'b'. APPEND itab.
itab-fld_a = 'a'. itab-fld_b = 'b'. APPEND itab.
itab-fld_a = 'b'. itab-fld_b = 'b'. APPEND itab.
itab-fld_a = 'b'. itab-fld_b = 'c'. APPEND itab.
LOOP AT itab.
AT FIRST.
WRITE:/ 'At first : ', sy-tabix.
ENDAT.
AT NEW fld_b.
WRITE:/ ' - At new : ', sy-tabix.
ENDAT.
AT LAST.
WRITE:/ 'At last : ', sy-tabix.
ENDAT.
ENDLOOP.
ULINE.
LOOP AT itab.
AT FIRST.
WRITE:/ 'At first : ', sy-tabix.
ENDAT.
AT END OF fld_b.
WRITE:/ ' - At end : ', sy-tabix.
ENDAT.
AT LAST.
WRITE:/ 'At last : ', sy-tabix.
ENDAT.
ENDLOOP.
--------------------------------------------------
[결과]
At first : 1
- At new : 1
- At new : 4
- At new : 5
At last : 5
---------------------------------
At first : 1
- At end : 3
- At end : 4
- At end : 5
At last : 5