二开案例.Python插件.表单插件执行SQL
【应用场景】在表单插件事件中,执行SQL语句。
【案例演示】采购订单,新增主菜单【查询SQL】和【执行SQL】。
【实现步骤】
<1>扩展采购订单,添加主菜单【查询SQL】和【执行SQL】。
<2>添加Python插件。
Python代码如下(如果插件报错,可重新调整下代码缩进):
import clr
clr.AddReference('Kingdee.BOS.App')
from Kingdee.BOS.App.Data import *
def BarItemClick(e):
if e.BarItemKey=="tbExecuteScalar":
# 查询当前登录用户信息
sql = "SELECT FNAME FROM T_SEC_USER WHERE FUSERID="+this.Context.UserId.ToString();
userName = DBUtils.ExecuteScalar(this.Context,sql,None);
this.View.ShowMessage(userName);
elif e.BarItemKey=="tbExecute":
# 修改当前登录用户的描述
sql = "UPDATE T_SEC_USER SET FDESCRIPTION=N'哈哈哈' WHERE FUSERID="+this.Context.UserId.ToString();
count = DBUtils.Execute(this.Context,sql);
this.View.ShowMessage("更新成功,SQL:"+sql+",受影响行数:"+count.ToString());
<3>保存元数据,开发完毕。
【知识点】
如果SQL语句不符合KSQL规范,在SQL语句的起始位置增加/*dialect*/申明。
例如: sql = "/*dialect*/ SELECT FNAME FROM T_SEC_USER WHERE FUSERID=1"
【答疑】
保存Python插件时,会提示错误信息:“Could not add reference to assembly Kingdee.BOS.App”,老有同学问,哎呀,报错了,会不会有问题呢?
统一答复如下:
此错误提示可不必理会,因为我们只是在BOSIDE上进行Python插件的注册,而这段Python代码最终是在服务端运行,BOSIDE属于客户端软件,BOSIDE所在目录下肯定不会包含服务端的组件,其提示缺少服务端的组件是正常的,而在应用服务器上是包含了所有的组件的,所以等真正到了运行时,此Python插件不会缺少任何平台组件,可以正常运行的。
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.Python插件.表单插件执行SQL
本文2024-09-23 04:21:35发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164801.html