首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >ABAP中COLLECT的用法

ABAP中COLLECT的用法

作者头像
SAP梦心
发布2022-05-10 16:51:36
发布2022-05-10 16:51:36
1.1K0
举报

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进行汇总,所以有的时候这也带来很多不方便。这个问题留下一篇博文解决吧!请看如下例子:

SPAN { font-family: "Fixedsys"; font-size: 12pt; color: rgba(0, 0, 0, 1); background: rgba(255, 255, 255, 1) } .L0S32 { color: rgba(51, 153, 255, 1) } .L0S33 { color: rgba(255, 104, 32, 1) } .L0S52 { color: rgba(0, 0, 255, 1) } REPORT  Z_COLLECT. DATA: BEGIN OF ITAB OCCURS 4,   COLUMN1(3) TYPE C,   COLUMN2(2) TYPE N,   COLUMN3    TYPE I,   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

看懂了这个结果了吗??

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档