如何实现工序汇报单下推生成检验单时明细表体检验数量累加显示到检验单单据头
需求描述:工序汇报单下推生成检验单时,将检验单各个分录行的检验数量累加汇总显示到检验单的单据头字段上;
问题分析:非工序检验时,可以直接在单据转换规则的表单服务策略中配置汇总即可,但是因为工序检验有点特殊,界面看到的工序单位对应的检验数量是在单据插件中处理的,是根据携带的基本单位检验数量先换算为生产单位检验数量,在根据工序计划设置的生产单位与工序单位的换算关系,再换算为工序单位检验数量;且单据转换规则的表单服务策略是在单据转换插件之前执行的,因此单纯的配置表单服务策略当这三个单位不一致时则无法实现汇总;
解决方案:如上述问题分析可知,自制工序检验(或者委外工序检验)需要实现该功能需要二开python类的单据转换插件,本例以自制工序检验为例,详细逻辑如下:
1、在工序汇报单到检验单的单据转换规则的插件策略中注册python插件:
2、示例代码如下:
import clr
clr.AddReference("System")
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.BusinessEntity')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.Contracts')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.App import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn import*
from Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args import*
def AfterConvert(e):
headEntity = e.Result.FindByEntityKey("FBillHead");#由于可能分单,所以可能有多个下游单据,是一个集合
for entity in headEntity:#循环处理
billObj=entity.DataEntity;
entrys=billObj["Entity"]
sumQty=0
for entry in entrys:
inspectQty=entry["InspectQty"]
sumQty=sumQty+inspectQty
billObj["FQty"]=sumQty
说明:由于python对于合格要求比较严格,因此可以使用Tab键按如上截图调整代码缩进,最好不要使用空格键以防缩进不一致;
如何实现工序汇报单下推生成检验单时明细表体检验数量累加显示到检验单单据头
本文2024-09-23 03:28:10发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-159054.html