SAP ABAP 内表分类汇总

1个内表里有3个字段,字段1、2是主键,汇总放到字段3:

REPORT ztest01.

TYPES:
  BEGIN OF struct,
    key1 TYPE string,
    key2 TYPE string,
    col      TYPE i,
  END OF struct,
  itab TYPE STANDARD TABLE OF struct WITH EMPTY KEY.

DATA(itab) = VALUE itab(
                         ( key1 = `a` key2 = `a` col = 1 )
                         ( key1 = `a` key2 = `b` col = 2 )
                         ( key1 = `a` key2 = `a` col = 3 )
                         ( key1 = `a` key2 = `a` col = 4 )
                         ( key1 = `a` key2 = `b` col = 5 )
                         ( key1 = `b` key2 = `a` col = 6 )
                         ( key1 = `b` key2 = `a` col = 7 )  ).

DATA gt_co TYPE TABLE OF struct.
DATA gs_co TYPE  struct.

LOOP AT itab INTO DATA(wa_itab) GROUP BY ( key1 = wa_itab-KEY1 key2 = wa_itab-KEY2 ).  "这里去重

         gs_co-key1 = wa_itab-key1.
         gs_co-key2 = wa_itab-key2.

        LOOP AT GROUP wa_itab INTO DATA(tmp).
            gs_co-col = gs_co-col + tmp-col.
        ENDLOOP.
      
        APPEND gs_co TO gt_co.

ENDLOOP.

cl_demo_output=>write( gt_co ).
cl_demo_output=>display( ).

显示结果:

C#中的对内存对象分类汇总,2个关键字段,汇总到第3个字段:

    foreach (var item in list1)
    {
        SaleOrder one = new SaleOrder();
        one.KDAUF = item.KDAUF;
        one.KDPOS = item.KDPOS;
        one.QREAL_TOTAL = list_act.Where(a => a.KDAUF.Equals(item.KDAUF) && a.KDPOS.Equals(item.KDPOS)).Count();
        list_so.Add(one);
    }

    foreach (var item in list_so)
    {                   
        tableModel3.Rows.Add(new Row(new Cell[] { new Cell(item.KDAUF), new Cell(item.KDPOS), new Cell(item.QREAL_TOTAL.ToString()) }));
    }

显示结果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘欣的博客

你将成为第一个打赏博主的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值