报表二次开发高级查询添加自定义字段指导方案
金蝶云社区-H4
H4
3人赞赏了该文章 4278次浏览 未经作者许可,禁止转载编辑于2017年03月09日 16:26:22

[tr][td]背景:
目前标准产品的报表中,过滤窗口中高级查询字段都是固定的,如果客户做了二次开发,比如在单据中增加了一些自定义字段,同时想在报表中按照这些自定义字段来筛选数据,这种情况,如果直接配置高级查询,则会出现查询报错,或者查不到信息的情况,该类需求属于特殊需求,标准产不会处理,可以通过二开插件来实现(本帖参考https://vip.kingdee.com/article/285118202751868703(报表二次开发添加自定义字段的指导方案)扩展整理而成,谢谢楼主启发)方案:
新建一个报表服务插件,直接继承K3Cloud的标准报表的服务插件,在报表获取数据之前先清除会报错的高级查询语句,再获取到报表的原始数据(该数据是保存在临时表中的),然后我们对此报表的原始数据进行高级查询筛选,就可以获取到你需要的任何数据,该方案通用于所有报表高级查询扩展自定义字段
下面以Cloud6.0 固定资产 折旧明细表为例,详细说明操作步骤步骤:
1. 扩展报表过滤条件
扩展


添加高级查询字段


2. 在BOSIDE中找到你需要处理的报表,确定其使用的服务插件是什么


3. 使用visual studio新建一个类,并继承原报表的类
添加相关引用:


添加using:

using Kingdee.BOS.Util;
继承标准产品的报表插件:

注:只需要重载基类的两个方法:public overridevoidBuilderReportSqlAndTempTable(IRptParams filter,stringtableName)public overridevoidCloseReport()
4. 在BOSIDE中,对原报表做一下扩展
扩展


注册插件扩展后,添加注册二次开发的插件,并取消原来插件启用(此处极容易出错,一旦重现编译组件或者移动组件位置之后,一定记得重新注册插件)




5. 清除缓存,重新登录Cloud至此,就可以在报表通过自定的扩展的字段查询数据了