• ◆◆0在loop中Collect语句的使用方法及实例


    1, Collect介绍

    ABAP编程中,经常会要求对loop循环中的一些数值类型(类型 I、P 或F)的字段进行合计,也可以直接使用collect语句进行合计,当然也可以自定义一个变量用来保存累加结果,然后使用At...endat语句进行合计,。

    简单说来,collect就是在loop循环的内表中非数值类型字段相同的情况下,对数值类型字段的进行合计。

    2, 例子程序1

    有点拗口,通过一个简单的程序,一看就明白了。

    简单说明一下程序实现的功能,需要合计的内表中有8条数据,按照key字段合计V1 V2的值,最后显示出来。

    显示结果:collect语句按照key中的A B C 三个不同值分别合计了。

    3, 例子程序2

    当然也可以在是用collect合计时添加条件,比如说之合计V1 V2值都大于2的,collect部分的代码修改如下:

    显示结果:

    发现key为A的场合下,V1和V2没有同时大于2的记录,所以在合计结果中就没有A的数据。

    4, collect中的错误信息

    collect过程中会报出如下错误信息,意思是内表中的非key键有的是非数值。

    所以,使用collect时要求内表中所有的非key fields必须是I,P或者F数据类型。

    对于standard table 而言,如果不指定key fields那么它的key fields就那些非I, P,F数据类型的字段,

    对于sorted table 和 hash table,key fields是需要指定的。

    注意:货币类型CURR实际类型是P,所以也可以使用collect累加

    以上。

  • 相关阅读:
    [CF1342D] Multiple Testcases
    [CF448D] Multiplication Table
    [CF459C] Pashmak and Buses
    [CF766E] Mahmoud and a xor trip
    [CF35E] Parade
    [CF15C] Industrial Nim
    [CF9D] How many trees?
    [CF19B] Checkout Assistant
    [CF22D] Segments
    [CF21D] Traveling Graph
  • 原文地址:https://www.cnblogs.com/lvdong18847870057/p/12552301.html
Copyright © 2020-2023  润新知