LOOP循環裏進行分組彙總

loop 循環裏面用可用at進行分組彙總, 
at first 用於第一行; 
at last 用於最後一行; 
at new field 當field字段前面或者他本身的值與上一條記錄的值不同時,才執行at endat裏面的代碼; 
at end field 與at new相似,這裏只是與下一條記錄的值進行比較。 

實例代碼: 

###代碼塊

``` ABAP

DATAt1(4TYPE ct2 TYPE i.

FIELD-GROUPSheader.
INSERT t2 t1 INTO header.
t1 ='AABB't2 1EXTRACT header.
t1 ='BBCC't2 2EXTRACT header.
t1 ='AAAA't2 2EXTRACT header.
t1 ='AABB't2 1EXTRACT header.
t1 ='BBBB't2 2EXTRACT header.
t1 ='BBCC't2 2EXTRACT header.
t1 ='AAAA't2 1EXTRACT header.
t1 ='BBBB't2 1EXTRACT header.
t1 ='AAAA't2 3EXTRACT header.
t1 ='AABB't2 1EXTRACT header.
SORT BY t1 t2.
LOOP.
  AT FIRST.
    WRITE 'Start of LOOP'.
    ULINE.
  ENDAT.
  AT NEW t1.
    WRITE ' New T1:'.
  ENDAT.
  AT NEW t2.
    WRITE ' New T2:'.
  ENDAT.
  WRITE/14 t1t2.
  AT END OF t2.
    WRITE 'End of T2'.
  ENDAT.
  AT END OF t1.
    WRITE 'End of T1'.
  ENDAT.

  AT LAST.
    ULINE.
  ENDAT.
ENDLOOP.

結果如下:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章