2020-08-17 12:58发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我希望将订单项的总和除以百分比。 我在循环中最后使用了&sum,为每个循环提供总和,但是很难将除法编码为结果。 我指定了DATA:result TYPE p DECIMALS 2。
您好 Brian Cooper
要回答您的问题-您正在做的是计算并打印 总和,但您不会将它们存储在任何地方。 为了能够计算百分比,需要存储每个组的总和,然后计算百分比。
据我所知,您没有为LOOP使用任何条件,因此 基本上总结所有记录。 是吗?
如果是这种情况,那么我建议您按以下方式更改代码。
数据: lv_essr_sum喜欢essr-netwr, lv_ekpo_sum喜欢ekpo-netwr。 通过ebeln ebelp排序it_essr。 按ebeln排序it_ekpo。 循环到it_essr INTO wa_essr。 在新的ebeln。 明确: lv_essr_sum, lv_ekpo_sum。 ENDAT。 lv_essr_sum = lv_essr_sum + wa_essr-netwr。 在it_ekpo上,在ebeln = wa_essr-ebeln处循环。 lv_ekpo_sum = lv_ekpo_sum + wa_ekpo-netpr。 结局。 在ebeln的结尾。 WRITE:/'ORDERED:'颜色4,27 lv_essr_sum。 写:/'已交付:'颜色4,27 lv_ekpo_sum。 如果lv_essr_sum> 0。 结果=(lv_ekpo_sum * 100)/lv_essr_sum。 其他。 结果= 0。 万一。 写:/'完成百分比:'颜色5,19结果。 ENDAT。 ENDLOOP。
嗨,布莱恩,
请提供您的代码。 复制问题会容易得多。
您要计算的百分比是什么?
订购和交付的金额 来自me23n。
桌子:埃斯特尔,埃克波。
类型:ty_essr的开头, ebeln TYPE essr-ebeln, ebelp TYPE essr-ebelp, netwr TYPE essr-netwr, ty_essr的结尾。 数据 :wa_essr TYPE ty_essr,带有标题行的ty_essr TYPE表。 类型:ty_ekpo的开始, netpr ekpo-netpr TYPE, ty_ekpo的结尾。 > DATA:wa_ekpo类型ty_ekpo, it_ekpo类型ty_ekpo表,带标题行。 DATA:结果类型p十进制2. INITIALIZATION .. 选择:s_ebeln FOR essr-ebeln。 开始选择。从esr到表SELECT ebeln ebelp netwr 在s_ebeln中的ebeln中。 SELECT netpr 从ekpo插入表it_ekpo 在s_ebeln中的ebeln。 对it_essr进行排序。 在it_essr处循环到wa_essr。最后在 SUM。写: /'ORDERED:'颜色4, 27 wa_essr-netwr。 ENDAT。清除:wa_essr。 ENDLOOP。 环聊it_ekpo INTO wa_ekpo。 >最后。总和。写:/'已交付:'颜色4, 27 wa_ekpo-netpr。 ENDAT。清除:wa_ekpo。 ENDLOOP。 WRITE:/'完成百分比:'颜色5, 19个结果。
SUM正式 过时的 至少快过时了。
是的,没错。
嗨Mateusz
感谢论坛提示,我将在以后的帖子中使用。 另外,您是正确的,我正在计算和存储总和,因为这是我做不到的,是的,我正在获取所有订单项的总和。 该代码是报告的一部分,但我喜欢SQL vs循环中的总和,非常有帮助。 感谢您的时间和帮助。
最多设置5个标签!
您好 Brian Cooper
要回答您的问题-您正在做的是计算并打印 总和,但您不会将它们存储在任何地方。 为了能够计算百分比,需要存储每个组的总和,然后计算百分比。
据我所知,您没有为LOOP使用任何条件,因此 基本上总结所有记录。 是吗?
如果是这种情况,那么我建议您按以下方式更改代码。
亲切的问候,Mateusz
嗨,布莱恩,
请提供您的代码。 复制问题会容易得多。
您要计算的百分比是什么?
亲切的问候,Mateusz
订购和交付的金额 来自me23n。
桌子:埃斯特尔,埃克波。
类型:ty_essr的开头,
ebeln TYPE essr-ebeln,
ebelp TYPE essr-ebelp,
netwr TYPE essr-netwr,
ty_essr的结尾。
数据 :wa_essr TYPE ty_essr,
带有标题行的ty_essr TYPE表。
类型:ty_ekpo的开始,
netpr ekpo-netpr TYPE,
ty_ekpo的结尾。
> DATA:wa_ekpo类型ty_ekpo,
it_ekpo类型ty_ekpo表,带标题行。
DATA:结果类型p十进制2.
INITIALIZATION ..
选择:s_ebeln FOR essr-ebeln。
开始选择。
从esr到表SELECT ebeln ebelp netwr
在s_ebeln中的ebeln中。
SELECT netpr
从ekpo插入表it_ekpo
在s_ebeln中的ebeln。
对it_essr进行排序。
在it_essr处循环到wa_essr。
最后在
SUM。
写:
/'ORDERED:'颜色4,
27 wa_essr-netwr。
ENDAT。
清除:wa_essr。
ENDLOOP。
环聊it_ekpo INTO wa_ekpo。
>最后。
总和。
写:
/'已交付:'颜色4,
27 wa_ekpo-netpr。
ENDAT。
清除:wa_ekpo。
ENDLOOP。
WRITE:/'完成百分比:'颜色5,
19个结果。
SUM正式 过时的 至少快过时了。
是的,没错。
嗨Mateusz
感谢论坛提示,我将在以后的帖子中使用。 另外,您是正确的,我正在计算和存储总和,因为这是我做不到的,是的,我正在获取所有订单项的总和。 该代码是报告的一部分,但我喜欢SQL vs循环中的总和,非常有帮助。 感谢您的时间和帮助。
一周热门 更多>