Python保存添加校验器原创
金蝶云社区-乐滋滋
乐滋滋
22人赞赏了该文章 1259次浏览 未经作者许可,禁止转载编辑于2021年12月30日 20:36:00
import clr
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from Kingdee.BOS.Core.Validation import *
from Kingdee.BOS.Log import Logger
def OnAddValidators(e):
	validator=ValidateProDucMain()
	validator.EntityKey = "FBillHead"
	validator.AlwaysValidate = True
	e.Validators.Add(validator)
class ValidateProDucMain(AbstractValidator):
	def Validate(self, dataEntities, validateContext,ctx):
		for bill in dataEntities:
			Logger.Info("LZZ44","4444444444")
			billEntrys = bill.DataEntity["Entity"];
			if billEntrys is None or  len(billEntrys)<=1:
				Logger.Info("LZZ","33")
				return
			Logger.Info("LZZ55","4444444444")
			countMain = list(filter(lambda x:str(x["ProductType"]) == '1', billEntrys));
			Logger.Info("LZZ33",str(len(countMain)))
			if len(countMain) > 1:
				Logger.Info("LZZ","44")
				billId=str(bill["Id"])
				info = ValidationErrorInfo("ProductType",billId, bill.DataEntityIndex,bill.RowIndex,billId,"表体存在多行主产品","表体产品类型校验",ErrorLevel.Error)
				validateContext.AddError(None,info)


赞 22