二开实现单据录入携带序列号主档备注信息(Python实现)

业务需求和C#的插件实现,参考文章:【二开实现单据录入携带序列号主档备注信息】,重写一个Python版本的实现,供参考。
clr.AddReference("System.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference("Kingdee.K3.SCM.Stock.Business.PlugIn")
clr.AddReference("Kingdee.K3.Core")
clr.AddReference("Kingdee.K3.BD.ServiceHelper")
from System import *
from Kingdee.BOS.Log import Logger
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from System import StringComparison
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.K3.SCM.Stock.Business.PlugIn import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.K3.Core.SCM.STK import *
from Kingdee.K3.BD.ServiceHelper import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
from Kingdee.BOS.Core.Metadata import *
def DataChanged(e):
if e.Field.Key.Equals("FSNQTY", StringComparison.OrdinalIgnoreCase):
if Convert.ToInt64(e.NewValue) > Convert.ToInt64(e.OldValue):
DoSerialNoDataChanged(e)
def DoSerialNoDataChanged(e):
for entity in this.Model.BusinessInfo.Entrys:
if type(entity) is SNSubEntryEntity:
parRowIndex = this.View.Model.GetEntryCurrentRowIndex(entity.ParentEntity.Key)
entityDataObject = this.View.Model.GetEntityDataObject(entity.ParentEntity, parRowIndex)
if entityDataObject != None:
dataEntrys = entity.DynamicProperty.GetValue(entityDataObject)
field = this.View.BusinessInfo.GetField("FMaterialId")
dyObj = field.DynamicProperty.GetValue[DynamicObject](entityDataObject)
materialId = 0
if dyObj != None:
materialId = Convert.ToInt64(dyObj["msterID"])
field = this.View.BusinessInfo.MainOrgField
dyObj = field.DynamicProperty.GetValue[DynamicObject](entityDataObject.Parent)
orgId = 0
if dyObj != None:
orgId = Convert.ToInt64(dyObj["Id"])
if materialId <= 0 or orgId <= 0:
return
_baseDataOrgCtl = Common.GetInvBaseDataCtrolType(this.View.Context)
if dataEntrys != None and dataEntrys.Count > 0:
for item in dataEntrys:
strSerialNO = Convert.ToString(item["SerialNo"])
if item["SerialNote"] != None and item["SerialNote"].ToString() != "":
continue
二开实现单据录入携带序列号主档备注信息(Python实现)
业务需求和C#的插件实现,参考文章:【二开实现单据录入携带序列号主档备注信息】,重写一个Python版本的实现,供参考。clr.AddReference("...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



