在查询出的两条记录中,除了数量和金额栏位不同之外,其他都相同,于是想对这两行记录进行合并,其他栏位正常显示,数量、金额则进行汇总
例如:
订单号 物料号 物料凭证号 数量 金额
10001 100001 400000001 100 1000
10001 100001 400000001 200 2000
这两行记录产生的原因是因为,同一个订单,在发货的时候分批次,这两个批次又同时过账,所以物料凭证号也相同,唯独数量、金额不同,想对此进行合并:
订单号 物料号 物料凭证号 数量 金额
10001 100001 400000001 300 3000
具体方法如下:
方法/步骤
-
1
像图中显示的那样,假设前面的订单编号、发货单、物料凭证编号、发货过账日期、物料代码、物料描述、业务员都相同,只有数量、金额不同
-
2
先定义表结构,一定要将数量、金额放到最后定义,这样是为了方便后面使用AT END OF 最后字段X.
-
3
在ABAP开发过程中,将查询出的所有数据放到临时表 lt_msegc 中,再对该表中的数据进行排序
除了数量、金额之外,其它都要写在排序中
Sort lt_msegc ASCENDING BY 字段1 字段2 字段3 ……
-
4
然后LOOP AT lt_msegc INTO lw_msegc.
-
5
在loop 中写 SUM 函数
除了数量、金额之外,把其它的赋值先写完
lw_mseg-budat_mkpf = lw_msegc-budat_mkpf ."过账日期
lw_mseg-vgbel = lw_msegc-vgbel ."订单号
……
lw_mseg-auart = lw_msegc-auart ."订单类型
AT END OF auart.
SUM.
lw_mseg-menge = lw_msegc-menge ."数量
lw_mseg-dmbtr = lw_msegc-dmbtr ."金额
APPEND lw_mseg TO lt_mseg.
Clear lw_mseg.
ENDAT.
在AT END OF auart时,auart是lw_msegc中除了数量和金额之外的,最后一个栏位
-
6
最后显示就可以了,显示的栏位没有顺序限制
END
文章评论