明细行取多列平均值, 样本值总数除以样本数

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

明细行取多列平均值, 样本值总数除以样本数

  客户提出有5列样本,分别记作样本1,样本2, 样本3, 样本4,样本5。 取样数量不一定,有时取3个样本,有时取5个本。然后将取样数作平均数存放在样本平均值字段上。 

image.webp

做了python 小插件。 

import clr

clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.ServiceHelper")

from System import DateTime
from Kingdee.BOS.Core import *
from Kingdee.BOS.ServiceHelper import *


def DataChanged(e):
    fbilltypeid = this.View.Model.GetValue("FBillTypeID")   # 单据类型
    if fbilltypeid["Id"].ToString() != "635cbdae6f70dd":  # 635cbdae6f70dd , 指定的单据类型计算样本平均数
        # this.View.ShowMessage(fbilltypeid["Id"].ToString())
        return
    if (
    # 触发值更新的五个样本字段
        e.Key == "F_NBDF_YB1"
        or e.Key == "F_NBDF_YB2"
        or e.Key == "F_NBDF_YB3"
        or e.Key == "F_NBDF_YB4"
        or e.Key == "F_NBDF_YB5"
    ):
        rowCount = 0   #  取样数量
        rowCount = this.View.Model.GetEntryRowCount("FItemDetail")
        cnt = 0
        yb_avg = 0

        F_NBDF_YB1 = this.View.Model.GetValue("F_NBDF_YB1", e.Row)
        F_NBDF_YB2 = this.View.Model.GetValue("F_NBDF_YB2", e.Row)
        F_NBDF_YB3 = this.View.Model.GetValue("F_NBDF_YB3", e.Row)
        F_NBDF_YB4 = this.View.Model.GetValue("F_NBDF_YB4", e.Row)
        F_NBDF_YB5 = this.View.Model.GetValue("F_NBDF_YB5", e.Row)
       
        if F_NBDF_YB1 > 0:
            cnt += 1
        if F_NBDF_YB2 > 0:
            cnt += 1
        if F_NBDF_YB3 > 0:
            cnt += 1
        if F_NBDF_YB4 > 0:
            cnt += 1
        if F_NBDF_YB5 > 0:
            cnt += 1
        if cnt > 1:
            yb_avg = (
                F_NBDF_YB1 + F_NBDF_YB2 + F_NBDF_YB3 + F_NBDF_YB4 + F_NBDF_YB5
            ) / cnt
        this.View.Model.SetValue("F_NBDF_AVG", yb_avg, e.Row)
        this.View.UpdateView("F_NBDF_AVG", e.Row)


明细行取多列平均值, 样本值总数除以样本数

客户提出有5列样本,分别记作样本1,样本2, 样本3, 样本4,样本5。 取样数量不一定,有时取3个样本,有时取5个本。然后将取样数作...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息