组装拆卸单BOM展开携带子件货主类型的二开处理(Python实现)

一、【需求问题】
组装拆卸时,按BOM展开后,物料清单中货主类型为客户的子项物料没有携带到组装拆卸单上,当前携带的是成品表的货主类型。

二、【功能分析】
组装拆卸单的表单插件,对BOM展开的触发操作,将当前BOM展开后子件的货主类型和货主默认赋值为成品表的货主类型和货主,并没有采用清单上设置的子项物料货主类型和货主
当前标准插件无法禁用,只能是二开插件在BOM操作触发后,再获取到BOM子项的信息,将展开后的子件物料数据中货主类型和货主重新做赋值。
之前对于组装拆卸单的二开帖子参考:
1、组装拆卸单BOM展开,成品表仓库仓位赋值到子件表仓库仓位
2、Python继承AbstractValidator实现校验器案例
核心代码Py:
import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference("Kingdee.BOS.App.Core")
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference("Kingdee.BOS.Contracts")
from System import *
from System import StringComparison
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System.Collections.Generic import *
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.App.Core import *
def AfterEntryBarItemClick(e):
if e.BarItemKey.Equals("TBBOMEXPAND", StringComparison.OrdinalIgnoreCase):
viewService = ViewService()
metaService = MetaDataService()
formMetaData = metaService.Load(this.Context, "ENG_BOM")
products = this.View.Model.DataObject["ProductEntity"]
for i in range (0, products.Count):
refBomID = Convert.ToInt64(products[i]["RefBomID_Id"])
if refBomID == 0:
continue
bomObj = viewService.LoadSingle(this.Context, refBomID, formMetaData.BusinessInfo.GetDynamicObjectType())
if bomObj == None:
continue
subItems = products[0]["STK_ASSEMBLYSUBITEM"]
bomTreeEntity = bomObj["TreeEntity"]
for j in range (0, subItems.Count):
materialId = Convert.ToInt64(subItems[j]["MaterialIDSETY_Id"])
dySubResult = filter(lambda x: x["MATERIALIDCHILD_Id"] == materialId, bomTreeEntity)
dySub = List[object](dySubResult)
if dySub.Count > 0:
if dySub[0]["OWNERTYPEID"] == "BD_Customer":
subItems[j]["OwnerTypeIDSETY"] = Convert.ToString(dySub[0]["OWNERTYPEID"])
#subItems[j]["FOwnerIDSETY_Id"] = 0 #Convert.ToInt64(dySub[0]["OWNERID_Id"])
this.Model.SetValue("FOwnerIDSETY", Convert.ToInt64(dySub[0]["OWNERID_Id"]), j);
C#:
public override void AfterEntryBarItemClick(AfterBarItemClickEventArgs e)
{
switch (e.Ba组装拆卸单BOM展开携带子件货主类型的二开处理(Python实现)
一、【需求问题】组装拆卸时,按BOM展开后,物料清单中货主类型为客户的子项物料没有携带到组装拆卸单上,当前携带的是成品表的货主类型。 ...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



