列表插件,单据批量保存原创
7人赞赏了该文章
1,277次浏览
编辑于2023年10月17日 14:26:59
列表插件,执行批量保存
通过单据引入,自动下推,批量生成,同步更新等等场景,都会有遇到单据点击保存更新单据需求,由于数据量较大,列表是没有保存按钮的,则需要每张单点进单据里面保存,浪费人力。
1;如下插件需要在列表菜单上加上一个按钮"tbButtSave"
2;将如下插件复制,粘贴在列表插件上保存,即可验证插件。
#引入clr运行库 import clr #添加对cloud插件开发的常用组件的引用 clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference("Kingdee.BOS.ServiceHelper") clr.AddReference('Kingdee.BOS.App') from System import * from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.ServiceHelper import * from Kingdee.BOS.App.Data import * def BarItemClick(e): if e.BarItemKey=="tbButtSave":#列表字段标识 listcoll = this.ListView.SelectedRowsInfo #获取被选中的明细行 inf = listcoll.GetPrimaryKeyValues() dycoll = this.ListModel.GetData(listcoll)#通过已选中的行生成数据包 info1 ="" #for i in range(len(inf)): for key in inf: info1 = info1+","+key dataObjects = BusinessDataServiceHelper.Load(this.Context, inf, this.View.BillBusinessInfo.GetDynamicObjectType()) result = BusinessDataServiceHelper.Save(this.Context, this.View.BillBusinessInfo, dataObjects) this.View.ShowOperateResult(result.OperateResult); if (result.ValidationErrors == None or result.ValidationErrors.Count == 0): return; collection = result.OperateResult #保存失败提示框 for errorInfo in result.ValidationErrors: operate1 = OperateResult(Name = errorInfo.Title, SuccessStatus = False,Message = errorInfo.Message) collection.Add(operate1)
赞 7
7人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读