ABAP中Collect的用法

vaule:collect在非数值字段相同的情况下,起到了数值字段汇总作用。

非数值字段不同的情况下,效果和append相同执行插入内表操作,当非数值字段相同的时候,则相当于modify的效果,只不过是将数值字段进行汇总相加后更新。

语法:collect W_table into I_table .

代码如下:


TYPES:BEGIN OF TY_TEST,
ID(3) TYPE C,
MENGE TYPE I,
END OF TY_TEST.

DATA:I_TEST TYPE TABLE OF TY_TEST,
     W_TEST TYPE TY_TEST.
DATA:I_TEST2 TYPE TABLE OF TY_TEST.

W_TEST-ID = ‘001‘.
W_TEST-MENGE = 10.
APPEND W_TEST TO I_TEST.

W_TEST-ID = ‘001‘.
W_TEST-MENGE = 70.
APPEND W_TEST TO I_TEST.

W_TEST-ID = ‘002‘.
W_TEST-MENGE = 20.
APPEND W_TEST TO I_TEST.

W_TEST-ID = ‘002‘.
W_TEST-MENGE = 50.
APPEND W_TEST TO I_TEST.

W_TEST-ID = ‘002‘.
W_TEST-MENGE = 80.
APPEND W_TEST TO I_TEST.

W_TEST-ID = ‘003‘.
W_TEST-MENGE = 30.
APPEND W_TEST TO I_TEST.

W_TEST-ID = ‘003‘.
W_TEST-MENGE = 90.
APPEND W_TEST TO I_TEST.

LOOP AT I_TEST INTO W_TEST.
  COLLECT W_TEST INTO I_TEST2."关键一步。。。"
  CLEAR:W_TEST.
ENDLOOP.

WRITE:/ ‘Collect前的内容:‘  .
WRITE:/1(12) ‘编号‘ ,   ‘数量‘.
LOOP AT I_TEST INTO W_TEST.
  WRITE:/ W_TEST-ID, ‘ ‘,W_TEST-MENGE.
  CLEAR:W_TEST.
ENDLOOP.

WRITE:/ .

WRITE:/ ‘Collect后的结果:‘  .
WRITE:/1(12) ‘编号‘ ,   ‘数量‘.
LOOP AT I_TEST2 INTO W_TEST.
  WRITE:/ W_TEST-ID , ‘ ‘,W_TEST-MENGE.
  CLEAR:W_TEST.
ENDLOOP.

时间: 2024-08-25 23:58:20

ABAP中Collect的用法的相关文章

ABAP中SHIFT用法

1).SHIFT:截断字符串         SHIFT {c} [BY {n} PLACES] [{mode}].:             作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则字符串不变.如果n超出字符串的长度,则字符串变空,所以在做 此操作的时候要注意n的指定.可以首先获得该字符串的长度,方法:len=STRLEN(C).                 Mode:指定字符串截断的方向.                   LEFT:从左边

转 ABAP中USING与CHANGING的用法

ABAP中FORM参数的传递有以下几种方式. 1.引用传递(CALL BY REFERENCE) 传递参数时将参数的地址(ADDRESS)传至子程序中,也就是子程序中的参数变量与外部程序的参数变量共享地址内的值.又叫CALL BY ADDRESS,若子程序中的参数变量的值发生了改变,那么,外部程序的实际变量的值也发生改变. [Syntax] FORM <subform> [USING <f1> <f2>...]  [CHANGING <fr1> <fr

ABAP中USING与CHANGING的用法

ABAP中USING与CHANGING的用法 ABAP中FORM参数的传递有以下几种方式. 1.引用传递(CALL BY REFERENCE) 传递参数时将参数的地址(ADDRESS)传至子程序中,也就是子程序中的参数变量与外部程序的参数变量共享地址内的值.又叫CALL BY ADDRESS,若子程序中的参数变量的值发生了改变,那么,外部程序的实际变量的值也发生改变. [Syntax] FORM <subform> [USING <f1> <f2>...]  [CHAN

java成神之——java中string的用法

java中String的用法 String基本用法 String分割 String拼接 String截取 String换行符和format格式化 String反转字符串和去除空白字符 String获取指定位置字符和replace的使用 StringBuffer的使用 字符串转换 基本类型的转换 添加字符编码 Base64的编码和解码 结语 java中String的用法 String基本用法 字符串一旦创建在堆中就不可变 字符串声明 String str = "你好"; String s

Oracle 中 decode 函数用法

Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值

linux中快捷键的用法

linux中快捷键的用法 1.1 常见快捷键 ctrl + a 把光标移动到行首 ctrl + e 把光标移动到行尾 ctrl + c 撤销当前的操作=cancel ctrl + d logout命令(当前行没有任何内容,退出当前用户),删除光标所在位置后面的一个符号,文本 ctrl + l(小写字母L)清除屏幕内容 ctrl +u 剪切光标所在位置到行首内容 ctrl +k 剪切光标所在位置到行尾内容 ctrl +y 粘贴 ctrl + r search搜索历史命令,继续搜索,查找历史命令 

thinkphp中I(&quot;parm&quot;)用法的注意事项

php中用来传输的方式有两种$_GET 和 $_POST, thinkphp 提供了一种兼容两中传输方式的做法I(“param”) 但是请注意:在使用php中的函数时需要传入参数时不能用I(“parm”),必须使用采用的传输方式$_GET 或 $_POST传入,否则出错 thinkphp中I("parm")用法的注意事项,布布扣,bubuko.com

ASP.NET在实际开发中验证码的用法

在网上有看到很多关于验证码的代码,很多都只是生成一张验证码图片,然而在实际登陆验证模块,验证码要怎么添加进去或者说怎么运用.和实际项目开发中要怎么使用验证码,我自己总结了几点. 一.在实际开发登陆模块的验证码,程序员是将验证码的文本值(字符串)存在Session中的,然后在登陆验证的时候,通过Session取值进行判断的,这样效率会高很多. 二.然而在写验证码的时候要想通过Session存值,就必须实现System.Web.SessionState.IRequiresSessionState这个

objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )

1.随机数的使用      1).arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc4random() % x; 获取1到x之间的整数的代码如下: int value = (arc4random() % x) + 1; 2).CCRANDOM_0_1() cocos2d中使用 ,范围是[0,1] 使用方法: float random = CCRANDOM_0_1() * 5; //