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

Python插件 - 保存单据跨单据触发值更新事件并保存

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

Python插件 - 保存单据跨单据触发值更新事件并保存

例子:采购入库单【保存/审核/提交】操作后 **(本文用保存操作来演示**) 采购入库保存后在(AfterExecuteOperationTransaction)事件触发采购订单的值更新事件 - 例子简单的判断 通过采购入库明细表分录查找link关系表,关系表存在则更新上有采购订单单据头的字段,并触发值更新事件。 - 采购订单的配置 ![image.webp](/download/0100c9c47cdc02244950814358066e9625a9.webp) # 源码 ``` python #作者: 老李头(Dean) #描述: 采购入库审核后修改采购订单字段并触发值更新 import clr clr.AddReference("System") clr.AddReference("System.Core") clr.AddReference("Kingdee.BOS") clr.AddReference("Kingdee.BOS.App") clr.AddReference("Kingdee.BOS.Core") clr.AddReference("Kingdee.BOS.Contracts") clr.AddReference("Kingdee.BOS.DataEntity") clr.AddReference("Kingdee.BOS.ServiceHelper") from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Bill import * from Kingdee.BOS.Util import * from Kingdee.BOS.App.Data import * from Kingdee.BOS.Core.DynamicForm import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * from Kingdee.BOS.Core.Metadata import * from Kingdee.BOS.Core.Metadata.FormElement import * from Kingdee.BOS.Orm import * from Kingdee.BOS.Orm.DataEntity import * from Kingdee.BOS.ServiceHelper import * from Kingdee.BOS.Util import * from System import * from System.ComponentModel import * from System.Linq import * #字段预加载(演示) #def OnPreparePropertys(e): #e.FieldKeys.Add("F_GXDJ"); #事务结束后事件 def AfterExecuteOperationTransaction(e): billid=""; Billno = ""; formId = "PUR_PurchaseOrder"; this.OperationResult.IsShowMessage = True; #单据数据包对象 - 如果获取不到就在预加载事件增加字段(OnPreparePropertys) obj = e.DataEntitys; #raise NameError(JsonUtil.Serialize(obj)); for item in obj: billid = item["Id"].ToString(); Billno = item["BillNo"].ToString(); InStockEntry = item["InStockEntry"]; #明细表单据体 #不存在关联跳过 - 防止报错 【这里没有判断上游是否采购订单,只做了简单的判断】 if InStockEntry is None or InStockEntry.Count == 0: continue; for instock_item in InStockEntry: lk = instock_item["FInStockEntry_Link"]; #关联关系表 if lk is None or lk.Count == 0: continue; SBillId = lk[0]["SBillId"] #采购内码 #创建视图 billView = CreateBillView(formId,SBillId); #加载视图数据 billView.LoadData(); #赋值 billView.Model.SetItemValueByID("F_SMTO_Text_qtr", "老李头小伙子测试一下", -1); #触发值更新服务 billView.InvokeFieldUpdateService("F_SMTO_Text_qtr", 0); try: #调用保存操作 billView.InvokeFormOperation(FormOperationEnum.Save); except e: raise NameError("采购订单值更新失败!"+str(e)); fina

Python插件 - 保存单据跨单据触发值更新事件并保存

例子:采购入库单【保存/审核/提交】操作后 **(本文用保存操作来演示**) 采购入库保存后在(AfterExecuteOperationTransaction)事件触...
点击下载文档文档为doc格式

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

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