计算行数量在总数量中的占比

客户要求每行录入重量, 得出该重量在总重量中的占比,然后再用这个占比值,去参与其它运算。
简化成公式: 行占比 = 行重量 / 总重量。占比之和 =100
分享下思路:
① 获取行重量 weight, 每次修改重量都需重新计算占比
② 汇总重量 total_weight
③ 行占比r ate = weight/ total_weight * 100
④ 因为有精度损失,每行直接求占比,它们的和可能不为100。 所以最后一行的占比做了变通: 100 - 前N-1 t行占比和

import clr
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
from Kingdee.BOS.Core import *
from Kingdee.BOS import *
'''
F_NB_Quantity 用量
F_NB_Rate 占比
F_NB_RawPrice 原料单价
'''
def DataChanged(e):
#修改用量
if e.Key=="F_NBDF_Quantity" :
# 获取单据体行数
cnt=this.View.Model.GetEntryRowCount("FEntity")
sumValue=0
#用量汇总
for i in range(cnt):
sumValue += this.View.Model.GetValue("F_NBDF_Quantity",i )
#this.View.ShowMessage('''行数{0},总数:{1}'''.format(cnt,sumValue))
rates=0 # 占比汇总
rates_l =0 #前N-1 行占比汇总
rows = []
for i in range(cnt) :
qty=this.View.Model.GetValue("F_NBDF_Quantity",i)
if qty !=0 :
rows.append(i)
this.View.Model.Se计算行数量在总数量中的占比
客户要求每行录入重量, 得出该重量在总重量中的占比,然后再用这个占比值,去参与其它运算。 简化成公式: 行占比 = 行重量 / 总重...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



