关于直接调拨单携带客户物料编码的实现案例

一、【业务需求】
接调拨单上加了客户字段,需要根据填写客户、物料编码后自动带出客户物料编码、客户物料名称
二、【分析实现】
标准产品直接调拨单的表单插件实现了携带客户物料编码和客户物料名称的逻辑,但是该逻辑取数依赖的是调入保管者类型和调入保管者,不满足业务需求。这里通过二开表单插件,由表头客户资料触发客户物料编码的取数赋值。
import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Kingdee.K3.SCM.ServiceHelper")
clr.AddReference("Kingdee.K3.SCM.Stock.Business.PlugIn")
clr.AddReference("Kingdee.K3.BD.Business.PlugIn")
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.K3.SCM.ServiceHelper import *
from Kingdee.K3.SCM.Stock.Business.PlugIn import *
from Kingdee.K3.BD.Business.PlugIn.Common import *
para_UseCustMatMapping = False
def GetUseCustMatMappingParam():
global para_UseCustMatMapping
return para_UseCustMatMapping
def DataChanged(e):
useCustMatMappingParam = GetUseCustMatMappingParam()
if e.Key.Equals("FCUSTID", StringComparison.OrdinalIgnoreCase):
#global para_UseCustMatMapping
if useCustMatMappingParam == True:
# FBillEntry 直接调拨单单据体标识、 FStockOutOrgId: 调出库存组织、 FCUSTID:表头客户标识、 FCUSTMATID: 单据体客户物料编码、FCustMatName:单据体客户物料名称
Common.SetCustMatWhenCustChange(this, "FBillEntry", "FStockOutOrgId", "FCUSTID", "FCUSTMATID", "FCustMatName");
dyCustId = this.View.Model.GetValue("FCUSTID")
if dyCustId == None:
count = this.View.Model.GetEntryRowCount("FBillEntry")
for index in range(0,count):
this.View.Model.SetValue("FCustMatId", 0, index)
if e.Key.Equals("FMATERIALID", StringComparison.OrdinalIgnoreCase):
#glo关于直接调拨单携带客户物料编码的实现案例
一、【业务需求】接调拨单上加了客户字段,需要根据填写客户、物料编码后自动带出客户物料编码、客户物料名称二、【分析实现】标准产品直接...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



