|
本帖最后由 myself_cyl 于 2012-3-15 13:28 编辑
多谢大家提意见,终于把程序搞定了,换了个逻辑写法,之前那个太复杂太搞了……
新代码,大家可以交流一下。。。
LOOP AT t_bom INTO w_bom.
w_bom_3-matnr = w_bom-matnr.
w_bom_3-SPN = w_bom-SPN.
w_bom_3-DESC = w_bom-DESC.
w_bom_3-ekgrp = w_bom-ekgrp.
w_bom_3-MENGE = w_bom-MENGE.
w_bom_3-MEINS = w_bom-MEINS.
w_bom_3-kbetr = w_bom-kbetr.
w_bom_3-count = 1.
COLLECT w_bom_3 INTO t_bom_2.
CLEAR w_bom_3.
ENDLOOP.
sort t_bom BY matnr kbetr descending . "取出最高价
DELETE ADJACENT DUPLICATES FROM t_bom COMPARING MATNR.
LOOP AT t_bom_2 INTO w_bom_2. "取出平均价
w_bom_2-kbetr1 = w_bom_2-kbetr / w_bom_2-count.
READ TABLE t_bom into w_bom with key matnr = w_bom_2-matnr.
IF sy-subrc = 0.
w_bom_2-kbetr2 = w_bom-kbetr.
ENDIF.
APPEND w_bom_2 TO t_bom_3.
ENDLOOP.
|
|