zoukankan      html  css  js  c++  java
  • 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.


  • 相关阅读:
    Java 继承
    java 封装
    单选题
    实操题
    面试题
    Linux系统常用命令
    Shell脚本编写登陆小程序.sh
    利用shell脚本实现每隔60秒磁盘内存数据监控脚本
    shell脚本一键配置本地yum源
    shell点名脚本不重复人名
  • 原文地址:https://www.cnblogs.com/HARU/p/7296075.html
Copyright © 2011-2022 走看看