二开案例.Python插件.表单插件执行SQL

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

二开案例.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

【应用场景】在表单插件事件中,执行SQL语句。【案例演示】采购订单,新增主菜单【查询SQL】和【执行SQL】。【实现步骤】<1>扩展采购订单,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息