AT new at end of

假设内表gt_ab有 col1,col2,col3三个字段。

DATA gt_ab TYPE STANDARD TABLE OF ty_ab.”内表

DATA gs_ab TYPE ty_ab. ”结构

第一条记录:col1=’1000’,col2=’AAA1’,col3=1

第二条记录:col1=’1000’,col2=’AAA2’,col3=2

第三条记录:col1=’2000’,col2=’AAA2’,col3=3

第四条记录:col1=’2000’,col2=’AAA2’,col3=4

第五条记录:col1=’2000’,col2=’AAA3’,col3=5

第六条记录:col1=’3000’,col2=’AAA3’,col3=6

AT NEW col1:以col1为分组条件,在每组的第一条记录时执行,在上述例子里会在在第一条,第三条,第六条记录时会执行。

AT END OF col1:以col1为分组条件,在每组的最后一条记录时执行,在上述例子里会在在第二条,第五条,第六条记录时会执行。

AT NEW col2:以col1和col2为分组条件,在每组的第一条记录时执行,在上述例子里会在第一条,第二条,第三条,第五条,第六条记录时会执行。

AT END OF col2:以col1和col2为分组条件,在每组的最后一条记录时执行,在上述例子里会在在第一条,第二条,第四条,第五条,第六条记录时会执行。

AT NEW或者AT END OFxxx以xxx以及其左边的所有字段为分组条件,在每组的第一条记录或者最后一条记录时执行。

进入AT NEW和AT END OF语句后,工作区里的数字型会清零,字符型会变成*,所以不能直接使用工作区进行数据操作。可以使用READ TABLEgt_ab INTO gs_ab INDEX SY-TABIX语句重新读到该行数据。

AT NEW和AT END OF可以用来进行字段的列求和或者汇总,虽然COLLECT也可以实现汇总,但是COLLECT是对内表里所有的数字型字段进行汇总,如果需要比较复杂的功能,还是需要使用AT NEW和AT END OF。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 捋一把春花秋月 引山下兰溪之水 ...
    书意_阅读 332评论 0赞 2
  • 今天是父亲辞世六周年的日子,怀着对父亲深深的思念,下午下班以后,我带上女儿去母亲家,探望已年过七旬的老母,给...
    米兰妹阅读 527评论 0赞 0

友情链接更多精彩内容