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

二开实现序列号单据备注保存写入序列号主档(Python实现)

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

二开实现序列号单据备注保存写入序列号主档(Python实现)

业务需求和C#的插件实现,参考文章:【二开实现单据录入携带序列号主档备注信息】,重写一个Python版本的实现,供参考。


import clr
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Business.DynamicForm')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Kingdee.BOS.Contracts')

from Kingdee.BOS.Log import Logger
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Contracts import *
from System.Data import *
from System import *
from System.Collections import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from System.Collections.Generic import Dictionary
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from System import StringComparison
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
     
def AfterExecuteOperationTransaction(e):
    if(this.OperationResult.IsSuccess == False):
        return
        
    if len(e.DataEntitys) == 0 or e.DataEntitys == None: 
        return
    snEntryName = "";
    entryName = "";
    for entity in this.BusinessInfo.Entrys:
        if type(entity) is SNSubEntryEntity:
            snEntryName = entity.EntryName
            parentEntity = this.BusinessInfo.GetEntity(entity.ParentEntityKey)
            entryName = parentEntity.EntryName;
    
    if snEntryName == "":
        return;
    havaUpdateSerials = Dictionary[str,str]()
    for bill in e.DataEntitys:
        billEntry = bill[entryName] 
        for entry in billEntry:
            snEntrys = entry[snEntryName] 
            for sn in snEntrys:
                serialId = Convert.ToString(sn["SerialId_Id"])
                serialNote = Convert.ToString(sn["SerialNote"])
                if serialNote != "":
                    havaUpdateSerials[serialId] = serialNote
                    
    if havaUpdateSerials.Count > 0:
        lstSqlObj = List[SqlObject]()    
        serialTmpTable = DBServiceHelper.CreateTemporaryTableName(this.Context)
        BuildUpdateDestSerialTmpTable(this.Context, serialTmpTable)
        
        serialDt = DataTable(serialTmpTable)
        otColumn1 = DataColumn()
        otColumn1.ColumnName = "FSERIALID"
        serialDt.Columns.Add(otColumn1)
        
        otColumn2 = DataColumn()
        otColumn2.ColumnName = "FDESCRIPTION"
        serialDt.Columns.Add(otColumn2)
        
        pythondict = dict(havaUpdateSerials)
        for key,value in pythondict.item

二开实现序列号单据备注保存写入序列号主档(Python实现)

业务需求和C#的插件实现,参考文章:【二开实现单据录入携带序列号主档备注信息】,重写一个Python版本的实现,供参考。import clrclr.AddR...
点击下载文档文档为doc格式

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

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