Python直接SQL账表-表单插件中关键数据的获取方法原创
36人赞赏了该文章
6,077次浏览
未经作者许可,禁止转载编辑于2022年02月26日 18:03:06
上文分享了Python脚本实现直接SQL账表的表单插件中,通过从数据库查询临时获取账表数据的方法。
上文传送门:【Python表单插件直接SQL账表-转换成单据】
这里续上文扩展分享Pyhton直接SQL账表表单插件用法:
通过Model获取SQL账表查询出来的数据集DataTable。
获取SQL账表临时表名TempTableName。
双击行事件使用:获取双击行选号、双击单元格Key、双击单元格的值...
获取SQL账表过滤框设置的关键字参数。
参考代码如下:
#引入clr运行库 # -*- coding: utf-8 -*- import clr #添加对cloud插件开发的常用组件的引用 clr.AddReference('System') clr.AddReference('System.Data') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Model') 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.DependencyRules 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 System.Collections.Generic import List from Kingdee.BOS.ServiceHelper import * from Kingdee.BOS.Model.Report import * from Kingdee.BOS.Core.Report.PlugIn import * from Kingdee.BOS.Core.Report import * #双击行事件 def EntityRowDoubleClick(e): dataM=this.Model; rowCount=dataM.GetRowCount();#报表数据的总行数 #通过Model获取SQL账表数据,DataTable对象,免查数据库,方便循环遍历读取账表的数据。 tab=dataM.GetData(0,rowCount); #报表临时表名,可用SQL查询此表,获取和SQL账表界面一样的数据 tempTabName=dataM.TableName; #双击行序号 curRow = this.View.OpenParameter.GetCustomParameter("FLIST_selectedRows"); #双击字段单元格 #doubleClickfldKey=("{0}").format(e.ColKey); #双击单元格的值 #valueStr=("{0}").format(tab.Rows[int(curRow)-1][doubleClickfldKey]); #this.View.ShowMessage(str(curRow)+"---"+doubleClickfldKey+"---"+tempTabName+"\r\n"+valueStr); orgNum=("{0}").format(tab.Rows[int(curRow)-1]["序号"]);#读取双击行指定字段的值 if(orgNum=="zzz"): return; #关键字过滤条件 filterRowList=this.View.Model.FilterParameter.SQLFilterRows; #构建关键字 字典(Key,Value) filterFldDIC={}; for filterRow in filterRowList: key=filterRow.FilterField.KeyWord; name=filterRow.FilterField.Caption; value=filterRow.Value; filterFldDIC[key]=value; year=str(filterFldDIC["#Year#"]);#年份 beginMonth=str(filterFldDIC["#BeginMonth#"]);#开始月份 endMonth=str(filterFldDIC["#EndMonth#"]);#截止月份
赞 36
36人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读