电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-162

二开实现单据录入携带序列号主档备注信息(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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信