Python脚本实现单据体首行过滤【分享】
金蝶云社区-云社区用户4u731234
云社区用户4u731234
15人赞赏了该文章 9,664次浏览 未经作者许可,禁止转载编辑于2015年11月07日 01:28:29

论坛里时不时就会有人问到 想实现单据体首行过滤要怎么做。
回复的都是要写个.net插件实现。
本人之前也有写过类似帖子。

动态表单实现客户端二次过滤及字段汇总统计
https://vip.kingdee.com/article/149104

但这种对用户来说,成本很高,需要有开发能力,要.net开发环境,进行组件编译才可以。

真的必要这么做吗。
答案当然是不必须的。

因为Cloud注册的插件,是直接支持动态Python脚本的。
具体实现
编写的Python脚本


可以看到,实际代码只有3句,即实现单据体首行过滤代码(其实最最主要的是无需写组件动态即时注册),
并有注册到【采购订单】“表单构建插件”上。

界面运行时,实际效果 【采购订单】 的 “明细信息” 单据体 实现了首行过滤,


同样 因为注册的动态脚本代码是通过控件类型进行判断的,“交货安排” 页签的单据体类型控件也实现了首行过滤,

送上Python脚本
[code]#实现单据体首行过滤
#by wanghl 2015-11-6
clr.AddReference('System')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from System import *

#方法覆写
def CreateControl(e):
if isinstance(e.ControlAppearance, EntryEntityAppearance):
e.Control.Put("showFilterRow", True);[/code]

总结 我们平时有一定通用性的并且业务逻辑并不那么复杂的需求,可以考虑尽量用Python脚本去实现。
好处相信大家已经体会到了。
最后目标达到
一次投入,即时配置使用。
一人投入,共享大家使用。