【保姆级】Python插件也可以调试了

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

【保姆级】Python插件也可以调试了

一、先介绍下Python的优势
1、对环境没有要求,无论公有云、混合云还是私有云都可用;
2、一个小需求,C#实现可能需要半天,而Python插件实现,估计也就30分钟;
3、Python插件无需部署,即时注册,即时实现功能;
4、Python的代码量特别少,真的是少到可怕。


二、废话不多说,直接上步骤获取更多金蝶二次开发教程

1.安装Visual Studio 2013

百度经验:https://jingyan.baidu.com/article/ab0b56305e8883c15bfa7d7a.html


2.下载IronPython

下载地址:https://download.csdn.net/download/weixin_39023606/12912338


3.下载python tools for visual studio工具

下载地址:https://archive.codeplex.com/?p=pytools


下载上述文件部署开发环境。当然也可以从其他地方下载到。


4.新建项目(环境准备)

1.新增项目


1.webp


2.载入环境

2.webp

3.webp

3.选择环境

4.webp


5.webp


4.引入库

把所需要的dll复制到项目路径下。

6.webp

7.webp


5.调试准备

1.调试表单插件(调试什么类型插件注册对应的方法和位置)

8.webp


以下代码借鉴于金蝶社区。


clr.AddReference('IronPython')

from IronPython.Hosting import Python


def wrap_d(f):

    func_name = f.__name__

    del f

    def wrapper(e):

        engine = Python.CreateEngine({'Debug': True})

        scope = engine.CreateScope()

        g = globals()

        for v in ('this',):

            scope.SetVariable(v, g[v])

        engine.CreateScriptSourceFromFile(r'L:\开发\VSCLOUD\测试开发\IronPythonApplication1\IronPythonApplication1\IronPythonApplication1.py').Execute(scope)

        return getattr(scope, func_name)(e)

    return wrapper

@wrap_d

def AfterEntryBarItemClick(e):

    pass


2.附加到进程

9.webp

10.webp


3.增加断点监视信息

11.webp

12.webp

到此调试金蝶云python脚本已完成。



高版本由于安全性限制,不支持使用globals。可以把用到globals()的3行代码删掉,改为scope.SetVariable('this', this)。

image.webp


注册脚本提示:由于安全原因,不支持'globals'调用


这样调试好不好用?

【保姆级】Python插件也可以调试了

一、先介绍下Python的优势1、对环境没有要求,无论公有云、混合云还是私有云都可用;2、一个小需求,C#实现可能需要半天,而Python插件实现...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息