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

单据列表获取即时库存更新到实体字段实现方案

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

单据列表获取即时库存更新到实体字段实现方案

一、【业务需求】

列表中查询物料的即时库存能否直接更新到实体字段,能保存到指定字段用于业务人员查看和导出Excel作为业务评估一个参数。


二、【功能分析】

当前列表中获取即时库存调用的方式是操作方法,配置"获取即时库存操作",只能在列表中自动生成一个非实体字段用于展示即时库存,有几个问题

1、该字段不支持引出

2、无法持久化,每次触发查询刷新列表等操作需要重新获取


列表配置获取即时库存参考文章:列表如何显示即时库存


三、【实现】

1、单据扩展数量类型,实体字段,如:"当前库存"

image.webp


2、启用系统标准功能,配置"获取即时库存操作",启用对应的列表插件

image.webp


3、二开插件,重写AfterDoOperation事件,触发获取即时库存操作后,插件会返回获取到的即时库存的数据包,根据即时库存数据包进行对应更新处理


以其他出库单为例:

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.ServiceHelper')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.K3.Core')

from System import *
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.Collections import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from System.Collections.Generic import Dictionary
from System import StringComparison
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.K3.Core.SCM.Args import *
from Kingdee.BOS.Core.List.PlugIn import *
     
def AfterDoOperation(e):
    if e.Operation.OperationId != 149:
        return
    
    invStockResult = e.OperationResult.FuncResult    
    if invStockResult == None:
        return
        
    havaUpdateInvs = Dictionary[object,object]()
    for stockResult in invStockResult:
        entryId = stockResult.EntryId
        stockQty = stockResult.StockQty
        havaUpdateInvs[entryId] = stockQty
        
    if havaUpdateInvs.Count > 0:
        lstSqlObj = List[SqlObject]()    
        invTmpTable = DBServiceHelper.CreateTemporaryTableName(this.Context)
        BuildUpdateInvQtyTmpTable(this.Context, invTmpTable)
        
        InvQtyDt = DataTable(invTmpTable)
        otColumn1 = DataColumn()
        otColumn1.ColumnName = "FENTRYID"
        InvQtyDt.Columns.Add(otColumn1)
        
        otColumn2 = DataColumn()
        otColumn2.ColumnName = "FSTOCKQTY"
        InvQtyDt.Columns.Add(otColumn2)
        
        pdict

单据列表获取即时库存更新到实体字段实现方案

一、【业务需求】列表中查询物料的即时库存能否直接更新到实体字段,能保存到指定字段用于业务人员查看和导出Excel作为业务评估一个参数。...
点击下载文档文档为doc格式

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

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