1, SUM介绍
在ABAP开发中,经常会要求对LOOP循环中的某些金额或数量字段进行合计,这时有两种方法,一种是简单的再定义一个变量进行累加,第二种是使用SUM语句。
本文简单介绍一下如何使用SUM进行合计。
SUM只能在loop循环的AT...ENDAT中使用,它只能对数字类型的字段进行分组合计。详细说明参见下面F1帮助。
2, 例子程序
写一个简单的例子进行说明。
下面代码对采购订单的金额进行合计,把同一个采购订单的所有行项目金额汇总合计,并显示出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
REPORT ztest_sum. TYPES:BEGIN OF gty_ekpo, ebeln TYPE ekpo-ebeln, ebelp TYPE ekpo-ebelp, netpr TYPE ekpo-netpr, END OF gty_ekpo. DATA:lit_ekpo TYPE STANDARD TABLE OF gty_ekpo WITH HEADER LINE, lwa_ekpo_sum TYPE gty_ekpo. SELECT ebeln ebelp netpr INTO TABLE lit_ekpo UP TO 20 ROWS FROM ekpo. SORT lit_ekpo BY ebeln. LOOP AT lit_ekpo. WRITE:/ ` `, lit_ekpo-ebeln,lit_ekpo-ebelp,lit_ekpo-netpr. lwa_ekpo_sum = lit_ekpo. AT END OF ebeln. SUM. WRITE:/ 'SUM', lwa_ekpo_sum-ebeln,` `,lit_ekpo-netpr. WRITE:/ '-------'. ENDAT. ENDLOOP. |
运行结果:
红框内是有多个行项目的PO金额合计。
以上。
发表评论