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.


  • 相关阅读:
    UVALive
    BZOJ2120:数颜色(数状数组套主席树)(带修改的莫对)
    BZOJ-3439:Kpm的MC密码(Trie+DFS序+主席树)
    51nod1674:区间的价值2(分治,利用&和|的收敛性)
    [CQOI2009]DANCE跳舞
    [HNOI2006]超级英雄
    Luogu1613 跑路
    [HZOI 2016]公路修建
    [NOI2014]魔法森林
    [HAOI2006] 旅行
  • 原文地址:https://www.cnblogs.com/HARU/p/7296075.html
Copyright © 2011-2022 走看看