ABAP—COLLECT的用法

   

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 就是将相同属性字段的值放到一起但是不累加,然后将其余的不相等属性值相加成为结果。

ABAP—COLLECT的用法相关推荐

  1. ABAP COLLECT语句用法深入解析

    我们都知道collect语句,主要用于 报表 数据的合并计算的,简单理解是:如果非数据字段值相等,那么数值字段值相加,其实这种描述不准确. COLLECT 简单的用法: LOOP  AT  t_dat ...

  2. ABAP delete的用法

    sort itab by matkl .   delete adjacent duplicates from itab comparing  matkl. uline at /1(70). ----- ...

  3. ABAP COLLECT 语法

    我们都知道collect语句,主要用于报表数据的合并计算的,简单理解是:如果非数据字段值相等,那么数值字段值相加,其实这种描述不准确. COLLECT 简单的用法: LOOP  AT  t_data. ...

  4. ABAP中SELECTION-SCREEN用法

    文章转自 http://blog.csdn.net/wangjolly/article/details/10716015 SAP-ABAP SELECT-SCREEN 的几个用法 实例1: SELEC ...

  5. oracle中bulk,oracle---bulk collect 的用法

    通过bulk collect减少loop处理的开销 采用bulk collect可以将查询结果一次性地加载到collections中. 而不是通过cursor一条一条地处理. 可以在select in ...

  6. java8 .stream().map().collect() 的用法

    API: https://www.runoob.com/java/java8-streams.html mylist.stream().map(myfunction->{return item; ...

  7. abap Loop循环用法

    LOOP AT itab - Basic Form LOOP AT itab result [cond 条件]. ... [AT ... ... ENDAT.] ... ENDLOOP. 语句LOOP ...

  8. ABAP Modify 的用法(TRANSPORTING)

    **一.修改内表的一行** MODIFY 表itab FROM 工作区wa_ TRANSPORTING Field1 Field2.---- WHERE 条件1 and 条件2. 例子 :MODIFY ...

  9. ABAP ASSIGN 的用法

    ASSIGN COMPONENT OF STRUCTURE TO 系统将字符串 的组件 分配给字段符号 可以指定 为文字或变量.如果属于类型C或者字段串(像组件一样没有内表),它可以指定组件的名称.如 ...

最新文章

  1. java读取txt文件
  2. 窗外传来嬉闹声,我默默关上窗
  3. Python:Selenium 1:浏览器驱动
  4. VTK:图表之TreeBFSIterator
  5. 2018计算机河北省高考试题,2018年河北高考物理压轴试题【含答案】
  6. you *might* want to use the less safe log_bin_trust_function_creators variable
  7. SpringBoot集成Google开源图片处理框架,贼好用!
  8. python json数组解析_Python读取JSON数据操作实例解析
  9. mysql5.7.9 json_Mysql5.7.9原生JSON格式支持
  10. java调用百度api进行身份证识别
  11. 基于YACC的TINY语法分析器的构建
  12. CRC32的C语言源代码
  13. NumPy下载与安装
  14. 解决夜神模拟器设置了代理后无法上网
  15. 表格中计算机设置,如何在excel表格中设置下拉菜单?一招教你搞定!
  16. 60秒学脑科学常识——《科学美国人》专栏文集
  17. UWP 禁止Pivot swip 手势
  18. YOLOv3 论文精读
  19. rz安装 xshell_Linux与windows之间文件传输工具RZSZ安装(Xshell或CRT)
  20. TSFS终端存储文件系统边缘计算技术构架

热门文章

  1. Android动态控制状态栏显示和隐藏
  2. Java单例设计模式(实现Java的一个类只有一个对象)
  3. Linux 服务器如何修改主机名
  4. 从用户的视角看待网页设计(一)
  5. tomcat runing on daemon with apr and ssl mode
  6. 性能测试的概念及其分类
  7. 浅谈Python http库 httplib2
  8. flash开发中如何实现界面代码分离
  9. Git提交时关于vim的错误
  10. PostgreSQL触发器的使用