凭证核算维度录入插件二次开发示例
金蝶云社区-战斗的凯文
战斗的凯文
3人赞赏了该文章 2951次浏览 未经作者许可,禁止转载编辑于2017年08月21日 16:19:59


项目说明

凭证录入是财务会计重要的工具,使用频率非常高,且不同的客户有不同的个性化需求。标准Cloud产品虽然已提供了非常丰富的功能,但仍难以满足所有客户的需求。好在我们的产品基于先进的插件模型,具体良好的扩展性和维度性。比如,企业内部的部门划分往往具有一定的层级结构,在凭证上录入部门核算维度时,标准产品可以列出所有有权限的部门以供选择,但却没有提供按层级过滤的功能,有客户希望:

录入部门核算维度时,只显示最低层级的部门

显然,这一需求无法通过数据规则来实现,但可以很容易的通过二次开发插件,达到按层级过滤部门的目的。

实现原理

系统在生成过滤条件前,会调用BeforeF7Select ()方法,允许插件干预过滤条件的生成,我们正好可以利用这个方法,将部门按层级过滤的条件附加到平台的过滤条件中去,最终达到目的。

开发环境

开发工具:VisualStuido 2012+.Net类库4.5+K/3 Cloud

开发语言:C#

开发步骤

1,新建一个C#类库工程:



2,添加需要用到的K/3 Cloud基础组件的引用:


以上组件全部来自于Cloud安装目录Kingdee\K3Could\WebSite\Bin文件夹下。可以根据需要增减。
3,由于核算维度的录入是凭证录入客户端的功能,我们利用的BeforeF7Select ()方法正是凭证录入客户端的一个平台方法。因此,需要继承VoucherEdit类并override这个方法:



4,在这个方法中,我们利用参数e的FieldKey属性和FormId属性来确定当前对象是部门核算维度,以防止误过滤其它对象。根据部门这个维度所对应的数据库表T_BD_DEPARTMENT的表结构,取最低层级部门的条件可以转换为“FPARENTID”中没有的部门即为最低层级的部门。另外,注意需要将新的过滤和原有过滤合并,以免无意中扩大了取数范围。代码如上图所示。


调试

编译通过后开始调试,调试前需要先在BOS IDE中注册插件,注意方法见第七项。调试时需要将项目生成的dll组件和相应的pdb文件复制到Cloud的安装目录下的Bin文件夹下。如图:




重新启动IIS,在VS中通过附加到进程的方式调试


附加完后,在代码中打上断点。打开Cloud登录进入凭证录入界面,开始调试。
注意事项

插件安装
1,打开BOS IDE进行账务会计领域的总账模块。


2,打到凭证并右键扩展一个:


3,在扩展出来的凭证属性中,点开“表单插件”:



4,点注册,选择前面得到Bin目录下的新的插件dll文件,并勾选对应的插件名称。保存所有操作并退出。
注意:注册新插件后需要重新启用IIS才能生效。
<完>