ABAP报表数据处理:内表数据汇总COLLECT和AT END OF、AT*

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP报表数据处理:内表数据汇总COLLECT和AT END OF、AT*相关的知识,希望对你有一定的参考价值。

参考技术A

1)在写abap 的过程中可能需要统计、求和等,那么在loop ... endloop 中间,有个AT <LEVEL>,<…>,ENDAT循环。其中的<LEVEL>包括: FRIST,LAST, NEW , END OF。
2)这些可以用来进行内表中按某个<u>字段f</u> 进行分组统计。
3)当f字段或者f字段左边的字段内容发生变化时该事件后面的语句都会执行。
以下以处理工资报表数据为例(简化例子):

接下

以上在loop过程中对工资单数据分别按人事范围、部门汇总,最后做总的统计。

ABAP对内表插入数据有3种:APPEND,COLLECT,INSERT。
1) 要计算数字字段之和或要确保内表中没有出现重复条目,使用 COLLECT 语句,它根据标准关键字处理行(将关键字相同的其他数字字段值汇总)。
2)要在内表现有行之前插入新行,请使用 INSERT 语句。
3)要将内表条目内容复制到另一个内表中并且覆盖该目标表格,使用 MOVE 语句。
以下举例说明collect常见用法。

注意:此处itab作为汇总表定义为hashed table 且明确唯一key列(普通内表也可),collect要求非KEY列都得是数据类型(I,P,F)

DATA: itab LIKE TABLE OF wa_data with KEY col1 col WITH HEADER LINE .

以上是关于ABAP报表数据处理:内表数据汇总COLLECT和AT END OF、AT*的主要内容,如果未能解决你的问题,请参考以下文章

ABAP语法-At end of 和collect

ABAP中Collect的用法

ABAP中Collect的用法

ABAP中Collect的用法

ABAP 内表数据汇总问题 求助

ABAP根据字段汇总