报表二次开发高级查询添加自定义字段指导方案原创
金蝶云社区-H4
H4
21人赞赏了该文章 1,886次浏览 未经作者许可,禁止转载编辑于2019年05月21日 09:45:27
背景:

       目前标准产品的报表中,过滤窗口中高级查询字段都是固定的,如果客户做了二次开发,比如在单据中增加了一些自定义字段,同时想在报表中按照这些自定义字段来筛选数据,这种情况,如果直接配置高级查询,则会出现查询报错,或者查不到信息的情况,该类需求属于特殊需求,标准产不会处理,可以通过二开插件来实现

(本帖参考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

至此,就可以在报表通过自定的扩展的字段查询数据了




图标赞 21
21人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!