AT NEW
fields 只能用于LOOP table 循环中,使用之前需要AT NEW
fields之前,需按照该fields先SORT,,当fields值改变时或fields
左边任何一个字段的值改变时,执行at new,一般用于按照相同字段汇总的业务操作. 而且不能对 LOOP
加任何条件.
*&---------------------------------------------------------------------*
*& Report Z_AF_025
REPORT z_af_025.
TYPES: BEGIN OF ty_tab ,
num TYPE i,
str(3) TYPE c,
END OF ty_tab.
DATA: itab TYPE TABLE OF ty_tab WITH HEADER LINE.
data: wa_itab TYPE ty_tab.
DATA: i_out TYPE TABLE OF ty_tab WITH HEADER LINE.
START-OF-SELECTION.
itab-num = 100.
itab-str = 'AAA'.
APPEND itab.
itab-num = 100.
itab-str = 'BBB'.
APPEND itab.
itab-num = 200.
itab-str = 'AAA'.
APPEND itab.
itab-num = 200.
itab-str = 'BBB'.
APPEND itab.
itab-num = 200.
itab-str = 'CCC'.
APPEND itab.
CLEAR itab.
SORT itab BY num.
LOOP AT itab .
WRITE:/ itab-num, itab-str.
MOVE itab to wa_itab.
AT END OF num.
i_out-num = wa_itab-num.
i_out-str = wa_itab-str.
APPEND i_out.
CLEAR i_out.
ENDAT.
CLEAR itab.
ENDLOOP.
ULINE.
WRITE: / 'At End of Result: '.
LOOP AT i_out.
WRITE:/ i_out-num, i_out-str.
ENDLOOP.
CLEAR: i_out, i_out[].
ULINE.
LOOP AT itab .
move itab to wa_itab.
AT new num.
i_out-num = wa_itab-num.
i_out-str = wa_itab-str.
APPEND i_out.
CLEAR |