Python开发:列表获取选择行
# 前言
经常碰到单据扩展添加某些基础资料值更新或实体服务带出基础资料属性到单据对应字段
添加完发现一个问题,就是历史单据信息也需要获取
但历史单据无法触发值更新,也有的先做完单再去处理基础资料信息的
这个时候一般就是到数据库进行后台更新
不过有些时候用数据库处理不方便,这时候就可以考虑用python处理
社区上也有相关的帖子,不过有些感觉过于复杂
于是我自己简单写了下,大家互相学习
# 业务逻辑:
列表添加按钮,点击后用sql进行批量更新对应数据
# 代码:
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.ServiceHelper')
#导入cloud基础库中的常用实体对象
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.ServiceHelper import *
def BarItemClick(e):
btnKey = e.BarItemKey.ToUpper();
# 列表自定义菜单按钮
if (btnKey == "TBUPDATED"):
#获取选中行
selectRows = this.ListView.SelectedRowsInfo;
#获取选中的单据ID集合
ID = selectRows.GetPrimaryKeyValues();
if (ID.Length == 0):
this.View.ShowMessage("请选择单据!", MessageBoxType.Notice);
return;
获取单据ID集合后,就可以根据实际情况写sql
最后执行sql的语句,可以用DBUtils
DBUtils.Execute(this.Context, str.Format(Sql, str.Join(",", ID)));
# 最后需要注意的是,星空Python脚本平台有个提示错误
Could not add reference to assembly Kingdee.BOS.App
可以忽略,提示方面的bug
您好,您这里只是获取到ID 有没有获取单据编号的方法呀
Python开发:列表获取选择行
# 前言经常碰到单据扩展添加某些基础资料值更新或实体服务带出基础资料属性到单据对应字段添加完发现一个问题,就是历史单据信息也需要获...
点击下载文档
本文2024-09-16 17:16:03发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14603.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章