生产订单通过Python脚本实现一个校验器原创
金蝶云社区-Windseeker
Windseeker
0人赞赏了该文章 31次浏览 未经作者许可,禁止转载编辑于2024年06月06日 15:06:26

示例为在生产订单保存操作上添加一个检验器,实现校验单据体只能存在一条主产品

import clr
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')

from System import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Validation import *
from Kingdee.BOS.Log import Logger

def OnAddValidators(e):
    validator  = OneValidator()
    validator.EntityKey = "FBillHead"
    validator.AlwaysValidate = True
    e.Validators.Add(validator)

class OneValidator(AbstractValidator):
    def Validate(self, dataEntities, validateContext,ctx):
        for bill in dataEntities:
            entrys = bill["TreeEntity"]#生产订单明细实体
            num = 0
            for entry in entrys:
                seq = entry["Seq"]#序号
                productType = entry["ProductType"]#产品类型
                if (productType == "1") :
                    if(num > 0):
                        billId = str(bill["Id"])
                        msg = '''当前生产订单第{0}行主产品类型重复,请检查'''.format(seq)
                        info = ValidationErrorInfo("",billId, bill.DataEntityIndex,seq,billId, msg,"表体校验",ErrorLevel.Error)
                        validateContext.AddError(None,info)
                    num = num + 1


赞 0