ABAP—COLLECT的用法
2012-05-24 17:45
225 查看
ABAP—COLLECT的用法
SAP中ABAP对内表插入数据的时候有3种:APPEND,COLLECT,INSERT。
要填充内表 ,既可逐行 添加数据, 也可复制另 一个表格的 内容。
要逐行填充 内表,可以 使用 APPEND、 COLLECT 或 INSERT 语句。
_ 要将内表 仅用于存储 数据,出于 性能方面的 考虑,建议 使用 APPEND。 用 APPEND 也可以创建序列清单。
_ 要计算数 字字段之和 或要确保内 表中没有出 现重复条目 ,请使用 COLLECT 语句,它根 据标准关键字处理行。
_ 要在内表 现有行之前 插入新行, 请使用 INSERT 语句。
要将内表内 容复制到另 一个内表中 ,请使用 APPEND、 INSERT 或 MOVE 语句的变式 。
_ 要将内表 行附加到另 一个内表中 ,请使用 APPEND 语句的变式 。
_ 要将内表 行插入另一 个内表中, 请使用 INSERT 语句的变式 。
_ 要将内表 条目内容复 制到另一个 内表中,并 且覆盖该目 标表格,请 使用 MOVE 语句。
COLLECT的特性让我看到了企业写报表的曙光。有的时候我们需要对某个区域或者某个客户年度营业额进行汇总,于是COLLECT就大派用场了,甚至可以不用跟QAD一样判断是否有存在这个记录而进行汇总,SAP就已经帮你处理好这一切!
不过,默认COLLECT只是对非P和I进行汇总,所以有的时候这也带来很多不方便。这个问题留下一篇博文解决吧!请看如下例子:
REPORT Z_COLLECT.
DATA: BEGIN OF ITAB OCCURS 4,
COLUMN1(3) TYPE C,
COLUMN2(2) TYPE N,
COLUMN3 TYPEI,
COLUMN4(5) TYPE C,
END OF ITAB.
ITAB-COLUMN1 = 'abc'. ITAB-COLUMN2 = '12'. ITAB-COLUMN3 = 3.ITAB-COLUMN4 = 'xyz'.
COLLECT ITAB.
WRITE / SY-TABIX.
ITAB-COLUMN1 = 'def'. ITAB-COLUMN2 = '34'. ITAB-COLUMN3 = 5.ITAB-COLUMN4 = 'xyz'.
COLLECT ITAB.
WRITE / SY-TABIX.
ITAB-COLUMN1 = 'abc'. ITAB-COLUMN2 = '12'. ITAB-COLUMN3 = 15.ITAB-COLUMN4 = 'xyz'.
COLLECT ITAB.
WRITE / SY-TABIX.
LOOP AT ITAB.
WRITE: / ITAB-COLUMN1, ITAB-COLUMN2,ITAB-COLUMN3, ITAB-COLUMN4.
ENDLOOP.
结果:
1
2
1
abc 12 18 xyz
def 34 5 xyz
总结:collect 就是将相同属性字段的值放到一起但是不累加,然后将其余的不相等属性值相加成为结果。
相关文章推荐
- SAP ABAP Collect的用法与实例(一)
- ABAP中COLLECT的用法
- ABAP中COLLECT的用法
- ABAP中Collect的用法
- ABAP—COLLECT的用法
- ABAP delete duplicate的用法指南
- ABAP Submit 用法解析
- abap describe的用法(程序示例)
- ABAP中USING与CHANGING的用法
- oracle学习之bulk collect用法
- Solaris性能测试工具collect的用法
- ABAP Modify 的用法
- ABAP中SELECTION-SCREEN用法
- 批量执行 bulk collect与forall用法
- SAP-ABAP DESCRIBE FIELD 用法
- GC.Collect()简介及一般用法
- Ruby中使用each和collect进行迭代的用法
- ABAP DESCRIBE TABLE 用法(计算内表行数)
- SAP ABAP编程 Ranges用法
- abap中collect的使用