新增物料快速勾选辅助属性二开处理

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

新增物料快速勾选辅助属性二开处理

一、【需求问题】

随着系统的使用和业务的调整,早期的添加的辅助属性不适用了,由于历史数据的原因,系统只能将其禁用而不能删除,继续添加新的辅助属性满足当前业务需求。这样的情况就导致系统有几十个辅助属性,而系统需要的辅助属性只是当前业务使用的特定几个,新增物料时,业务人员勾选对应辅助属性时,工作量比较大,还容易出错。

想要实现:物料"基本"页签添加复选框字段,勾选该复选框时启用默认的几个辅助属性


二、【功能分析】

1、物料辅助属性单据体数据为插件动态绑定,无法在BOS中配置实现

2、辅助属性的标识需要结合BOS后台元数据才能获取

3、从1、2分析只能通过二开表单插件去处理


【实现】

1、控制物料处于"新增"或者"暂存"状态时,可进行编辑处理

2、通过"附属属性维度数据",FormId:BD_FLEXSITEMDETAILV_EXTEND,找到对应辅助属性的字段标识

image.webp

3、扩展复选框字段,勾选触发值更新,二开表单插件,值更新触发辅助属性勾选赋值 


import clr 
clr.AddReference("System")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")

from System import *
from System import StringComparison
from System.Collections.Generic import *
from Kingdee.BOS.Core.Bill.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from Kingdee.BOS.Orm.DataEntity import *

def SetAuxProperty(enable):
    auxPtyEntity = this.View.BusinessInfo.GetEntity("FEntityAuxPty")
    auxPty = this.View.Model.GetEntityDataObject(auxPtyEntity)
    index = 0
    auxlist = ["100001","100004"]  # 需要快速勾选的辅助属性, "附属属性维度数据",FormId:BD_FLEXSITEMDETAILV_EXTEND,找到对应辅助属性的字段标识
    for aux in auxPty:
        auxPropertyId_Id = Convert.ToString(aux["AuxPropertyId_Id"])
        if enable == True:
            if auxPropertyId_Id in auxlist:
                auxPty[index]["IsEnable1"] = True
            else:
                auxPty[index]["IsEnable1"] = False
        else:
            auxPty[index]["IsEnable1"] = False
               
        index = index + 1
    this.View.UpdateView("FEntityAuxPty")
    
def DataChanged(e):
    if e.Key.Equals("FCHECKBOX", StringComparison.OrdinalIgnoreCase):
        documentStatus = this.View.Model.GetValue("FDocumentStatus")
        if documentStatus == "Z" or documentStatus == "A":
            enableAux = Convert.ToBoolean(e.NewValue)
            this.View.ShowMessage(str(enableAux))
            SetAuxProperty(enableAux)


image.webp

image.webp

image.webp


新增物料快速勾选辅助属性代码参考.rar


想问下这个代码里面的复选框(启用辅助属性)的标识是哪个,

新增物料快速勾选辅助属性二开处理

一、【需求问题】随着系统的使用和业务的调整,早期的添加的辅助属性不适用了,由于历史数据的原因,系统只能将其禁用而不能删除,继续添加...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息