新手python插件之单据插件实现加载值更新事件
金蝶云社区-nmgzjf
nmgzjf
10人赞赏了该文章 8286次浏览 未经作者许可,禁止转载编辑于2016年07月22日 17:38:14

有朋友项目中遇到“加载值更新事件”的需求:要求某字段在单据加载时,自动更新为当前系统时间。
论坛搜索后,发现必须通过插件实现:


http://club.kingdee.com/forum.ph ... 0%E5%AD%97%E6%AE%B5

如此简单的问题,立马想到了PYTHON,因此开始研究。
初次研究,当然是实现hello world!
首先,肯定是表单插件,调用加载事件,搜索后找到如下代码:
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core import *
def OnLoad(e):
this.View.ShowMessage("helloworld!");#注意缩进,用tab键即可


结果OK

于是,写个文本字段试试:
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from System import DateTime
def OnLoad(e):
this.View.ShowMessage('helloworld!');
this.Model.SetValue("FINVOICENO","123456");
OK!

再研究更新日期,期间遇到波折,import time报错,也不会用python函数,——这大概是初学者的通病,还是搜索吧,CLOUD论坛大概是金蝶体系里最好的论坛了,开发资料相当丰富啊,顺利找到
http://club.kingdee.com/forum.ph ... _search&word=import
修改代码:
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from System import DateTime
from Kingdee.BOS.Core import *
def OnLoad(e):
this.View.ShowMessage('helloworld!');
this.Model.SetValue("FINVOICENO","123456");
this.Model.SetValue('FINVOICEDATE',DateTime.Today);
一切顺利!还是要感谢论坛老师的回复,资源其实就在手中,就看你能不能善于利用了!