(二开)物料清单中根据工艺路线携带序列和工序二开方案
1. 增加工艺路线F8字段
在“子项明细”中增加基础资料字段,关联的基础资料类型为“工艺路线F8”,该基础资料将工艺路线子分录“工序列表”打平了显示,可以定位到具体的序列和工序。
(1)如果需要按照父项物料进行过滤,则直接将“过滤”属性配置成'GetValue(FMATERIALID)'=FMaterialId。
(2)如果需要按照物料组过滤,且工艺路线是上级分组,而物料是下级分组,就需要使用Python插件。
先将“物料分组”加入到父物料的“引用属性”中:
然后配置表单插件,注册Python脚本
Python参考实现:
clr.AddReference("Kingdee.BOS.ServiceHelper")
from Kingdee.BOS.ServiceHelper import *
def BeforeF7Select(e):
if ("FRouteF8".Equals(e.FieldKey)):
material = this.View.Model.DataObject["MATERIALID"]
sql=" 1=0 "
if (material != None):
group = material["MaterialGroup"]
if (group != None):
groupId = group["Id"]
selectsql="SELECT FFULLPARENTID FROM T_BD_MATERIALGROUP WHERE FID="+groupId.ToString()
fullParentId = DBServiceHelper.ExecuteScalar(this.Context, selectsql, "")
if(fullParentId==None or "".Equals(fullParentId.Trim())):
sql=" 1=0 "
else:
splitIds=fullParentId.Split('.')
groupIds=groupId.ToString();
for splitId in splitIds:
if(splitId==None or "".Equals(splitId.Trim())):
continue
else:
groupIds=groupIds+","+splitId.ToString()
sql=" FMaterialGroupId IN ("+groupIds+") "
e.ListFilterParameter.Filter = sql
2. 配置实体服务规则,根据工艺路线F8携带序列和工序号
在“子项明细”中增加实体服务规则:
规则条件如下:
规则条件成立时,执行如下两个服务:
膜拜大佬!
(二开)物料清单中根据工艺路线携带序列和工序二开方案
本文2024-09-16 17:48:28发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-18073.html