ABAP—COLLECT的用法
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的用法相关推荐
- ABAP COLLECT语句用法深入解析
我们都知道collect语句,主要用于 报表 数据的合并计算的,简单理解是:如果非数据字段值相等,那么数值字段值相加,其实这种描述不准确. COLLECT 简单的用法: LOOP AT t_dat ...
- ABAP delete的用法
sort itab by matkl . delete adjacent duplicates from itab comparing matkl. uline at /1(70). ----- ...
- ABAP COLLECT 语法
我们都知道collect语句,主要用于报表数据的合并计算的,简单理解是:如果非数据字段值相等,那么数值字段值相加,其实这种描述不准确. COLLECT 简单的用法: LOOP AT t_data. ...
- ABAP中SELECTION-SCREEN用法
文章转自 http://blog.csdn.net/wangjolly/article/details/10716015 SAP-ABAP SELECT-SCREEN 的几个用法 实例1: SELEC ...
- oracle中bulk,oracle---bulk collect 的用法
通过bulk collect减少loop处理的开销 采用bulk collect可以将查询结果一次性地加载到collections中. 而不是通过cursor一条一条地处理. 可以在select in ...
- java8 .stream().map().collect() 的用法
API: https://www.runoob.com/java/java8-streams.html mylist.stream().map(myfunction->{return item; ...
- abap Loop循环用法
LOOP AT itab - Basic Form LOOP AT itab result [cond 条件]. ... [AT ... ... ENDAT.] ... ENDLOOP. 语句LOOP ...
- ABAP Modify 的用法(TRANSPORTING)
**一.修改内表的一行** MODIFY 表itab FROM 工作区wa_ TRANSPORTING Field1 Field2.---- WHERE 条件1 and 条件2. 例子 :MODIFY ...
- ABAP ASSIGN 的用法
ASSIGN COMPONENT OF STRUCTURE TO 系统将字符串 的组件 分配给字段符号 可以指定 为文字或变量.如果属于类型C或者字段串(像组件一样没有内表),它可以指定组件的名称.如 ...
最新文章
- java读取txt文件
- 窗外传来嬉闹声,我默默关上窗
- Python:Selenium 1:浏览器驱动
- VTK:图表之TreeBFSIterator
- 2018计算机河北省高考试题,2018年河北高考物理压轴试题【含答案】
- you *might* want to use the less safe log_bin_trust_function_creators variable
- SpringBoot集成Google开源图片处理框架,贼好用!
- python json数组解析_Python读取JSON数据操作实例解析
- mysql5.7.9 json_Mysql5.7.9原生JSON格式支持
- java调用百度api进行身份证识别
- 基于YACC的TINY语法分析器的构建
- CRC32的C语言源代码
- NumPy下载与安装
- 解决夜神模拟器设置了代理后无法上网
- 表格中计算机设置,如何在excel表格中设置下拉菜单?一招教你搞定!
- 60秒学脑科学常识——《科学美国人》专栏文集
- UWP 禁止Pivot swip 手势
- YOLOv3 论文精读
- rz安装 xshell_Linux与windows之间文件传输工具RZSZ安装(Xshell或CRT)
- TSFS终端存储文件系统边缘计算技术构架