电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何实现检验单针对启用辅助属性的物料保存校验辅助属性必录

来源:金蝶云社区作者:金蝶2024-09-237

如何实现检验单针对启用辅助属性的物料保存校验辅助属性必录

需求描述:标准产品检验单只有在检验单单据类型启用检验单确定辅助属性时才会按照单据类型参数设置在保存或者质检完成的时候校验使用决策表体的辅助属性必录(不校验明细分录的),但是某些类型的检验单不支持启用检验单确定辅助属性且一行明细分录的辅助属性都是一个值不需要在检验单使用决策表体分开维护也不需要将辅助属性反写回上游单据(例如其他检验单),因此也就不需要启用检验单确定辅助属性,只需要把检验单明细表体的辅助属性字段放出来显示维护即可,因此需要在保存的时候针对启用辅助属性管理的物料校验明细分录启用的辅助属性必录;

解决方法1检验单单据类型不启用检验单确定辅助属性,修改检验单的实体服务规则将明细分录的辅助属性放开显示,在检验单的保存操作上二开python插件增加校验器实现辅助属性必录校验,详细逻辑如下:(适用于非来料检验且非产品检验)

(1)修改如下实体服务规则的条件使对应检验类型时明细表体的辅助属性显示;

(2)修改明细表体的辅助属性字段的锁定性,不勾选新增锁定和修改锁定即可;

(3)检验单的保存操作上注册python插件上增加校验器校验物料启用辅助属性时,明细表体的辅助属性值必录:

(4)示例代码如下:

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.App.Core')

from System import*

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.App.Core import *

from Kingdee.BOS.App.Data import *

from Kingdee.BOS.Contracts import *

from System.Collections.Generic import *

from Kingdee.BOS.Core.Metadata.EntityElement import*

from Kingdee.BOS.Core.Validation import*

 

def OnPreparePropertys(e):

    e.FieldKeys.Add("FAuxPropId")

    e.FieldKeys.Add("FMaterialId")

def OnAddValidators(e):

    validator=ValidateAuxMustInput()

    validator.EntityKey="FBillHead"

    validator.AlwaysValidate=True

    e.Validators.Add(validator)

class  ValidateAuxMustInput(AbstractValidator):

    def Validate(self,dataEntities,validateContext,ctx):

       fieldKey = "FMaterialId"

       baseDataField = validateContext.BusinessInfo.GetField(fieldKey)

       for bill in dataEntities:

           businessType=bill.DataEntity["BusinessType"]

           if(businessType !="20"):

              continue

           billEntrys=bill.DataEntity["Entity"]

           billId=bill["Id"]

           for entry in billEntrys:

              bEntryNotVal='0'

              mseq=(entry["Seq"])

              mtrlObj=entry["MaterialId"]

              mtrlId=entry["MaterialId_Id"]

              auxObj = entry["AuxPropId"]

              listAuxId = baseDataField.Controller.GetFlexEnableList(mtrlObj)                                                           

              if (listAuxId.Count <= 0):            

                  cont

如何实现检验单针对启用辅助属性的物料保存校验辅助属性必录

需求描述:标准产品检验单只有在检验单单据类型启用检验单确定辅助属性时才会按照单据类型参数设置在保存或者质检完成的时候校验使用决策表...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信