LOOP循环里进行分组汇总

本文介绍ABAP中使用loop循环结合at指令进行数据分组汇总的方法,包括atfirst、atlast、atnewfield及atendfield的使用场景,并通过具体示例展示了如何根据字段变化来标记数据的新起点与终点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.

结果如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值