正常情况下,皕杰报表的数据集是直接连接数据库取数的,但是如果遇到特殊情况需要通过中间件连接数据库,而非直接连接,就需要用到自定义数据集。
所谓自定义数据集,就是说数据集是自己写的一个java类,这个类的添加与其它自定义开发的类一样,设计器中在类加载配置中添加,服务器中打成jar包放到WEB-INF/lib下。
1、自定义数据集在皕杰报表设计器中使用
新建数据集,名称为ds,数据源不选,类型选择为自定义类型。

点击下一步,在编辑查询sql里写上自定义数据集的全路径。

然后点击下一步,将需要向自定义数据集中传参的参数选择进来。

数据集的参数序号和自定义数据集代码中的applyParams方法中的(java.lang.Object[] params)object数组一一对应。
然后点击完成,自定义数据集就创建完成了。
2、自定义数据集在皕杰报表服务器WEB端的应用
web中添加自定义数据集也有两种方式:
一是将编译好的.class文件打成jar包,放到WEB-INF\lib文件夹里;二是将.class文件放到WEB-INF\classes目录下。一般记住打jar包就可以了。
3、类介绍
用户自定义数据集需实现bios.report.api.customize.CustomDataSet接口。自定义数据集基础接口,直接实现该接口无效,应根据数据需要实现ArrayDataSet或IteratorDataSet。
4、方法说明
bios.report.api.customize.CustomDataSet接口:
applyParams
语法:void applyParams(java.lang.Object[] params)
用途:应用数据集参数,以实现动态获取数据。
参数:params - 参数列表,Object数组,与设计器中指定的数据集参数一一对应。
getMetaData
语法:java.lang.String[] getMetaData()
用途:获取数据元信息,主要用以在设计器中展示数据集的结构。
返回值:列名数组,长度要与数据列数一致
bios.report.api.customize.ArrayDataSet接口:自定义数据集接口,用户可以实现该接口,以自定义的方式完成报表中某个数据集的数据准备和加载。该接口适合一次性的数据加载模式。 实现类需要一个无参数的构造方法。
getRowCount
语法:public abstract int getRowCount()
用途:获取该数据集中数据的总行数
返回值:数据总行数
getRowData
语法:public abstract java.lang.Object[] getRowData(int rowIndex)
用途:获取指定行的数据
参数:rowIndex - 数据行序号,从0开始。
返回值:代表一行数据的Object数组
bios.report.api.customize.IteratorDataSet接口:自定义数据集接口,用户可以实现该接口,以自定义的方式完成报表中某个数据集的数据准备和加载。该接口适合逐条数据迭代加载的模式。 实现类需要一个无参数的构造方法。
nextRow()
语法:java.lang.Object[] nextRow()
用途:加载数据集中下一行的数据
返回值:代表一行数据的Object数组;返回null时,表示数据加载完毕。

皕杰报表自定义扩展~自定义数据集相关推荐

  1. 皕杰报表自定义扩展~自定义函数

    皕杰报表工具中提供了170多个函数和操作符,基本能满足设计大部分报表的需求,遇到特殊情况,设计器里的函数不能满足需求时,就需要自定义一些函数来来满足你的需求. 1.皕杰报表自定义函数的类型: 自定义函 ...

  2. 皕杰报表工具中如何展示图片

    我们发过一篇文章介绍了皕杰报表工具中如何展示来自网络上的图片,那么如果图片在本地或者存在数据库中如何展示呢? 在皕杰报表中增加图片信息时,该图片既可以来自数据库,也可以来自本地文件,还可以来自报表工具 ...

  3. 皕杰报表填报过程留痕

    一.需求描述 A项指标 B项指标 测试结果1 111 222 测试结果2 333 444 说明: 如果开始填写了000,并且已经保存了(没有保存前过程中修改不用留痕).再修改成111,那么这个单元格里 ...

  4. 皕杰报表里的排序问题

    在使用皕杰报表设计报表时,往往需要按照某个字段的顺序进行排序,比如按序号.时间的顺序排序.那么这个排序是如何设计出来的呢? 首先要知道,设计报表的过程实质上就是把数据集表中的数据按一定格式展现在报表里 ...

  5. 皕杰报表中的过滤分组函数与过滤分组报表

    过滤分组报表是什么样的呢?见下图. 从图中可以看出,"华北"组中的一部分记录被过滤,并单独拎出来在"其中:北京"组和"其中:天津"组中进行了 ...

  6. 皕杰报表(问题小结)

    1.皕杰报表设计器连接mysql数据库,数据集sql中用as重命名中文字段会不起作用,仍然显示原来的字段名 解决方案: 在url后面加入&useOldAliasMetadataBehavior ...

  7. java 批量打印_JAVA批量打印皕杰报表

    原标题:JAVA批量打印皕杰报表 不使用皕杰报表工具条上的打印按钮,用java怎么实现批量打印皕杰报表呢? 解决方案: 皕杰报表提供了批量打印的工具类ReportToolkits,ReportTool ...

  8. 皕杰报表和炎黄盈动(AWS BPM)集成 操作手册

    最近在搞皕杰报表和AWS BPM 整合的工作.比较痛苦,接下来,我把两者整合的步骤写下来,希望对大家能有所帮助. AWS BPM和皕杰报表整合: 第一步:首先将皕杰报表中的 ..DemoServer\ ...

  9. 皕杰报表在chrome中emitter=print无效问题的解决

    访问皕杰报表时在url后加&emitter=print后没起作用,tomcat控制台不报错,页面没有反应,这是什么原因呢? 这个我们要从皕杰报表的打印方式说起,因为采用B/S架构的皕杰报表,用 ...

最新文章

  1. 读书笔记 | 墨菲定律(一)
  2. FPGA跨时钟域设计的一点总结
  3. 卢松松:你的网站也是抄来的吗?
  4. Java技巧:深拷贝的两种方式2(转)
  5. 特征选择方法之信息增益
  6. 将数据从 SQL Server 导入 Azure Storage Table
  7. 【代码笔记】Web-HTML-颜色
  8. Wcf传递的参数实际不为空,但是接收时显示为空。
  9. php继承 重写方法吗,PHP中的继承与重写
  10. 安卓下最强的3款pdf阅读器测评
  11. 淘宝/天猫/京东/抖音直播年货节抢购秒杀助手更新下载,喵惠抢购助手支持自动免密支付,分享源码共同学习探讨
  12. C# 红色警戒2无限金钱+电力负载 外挂源码示例
  13. 肯德尔系数怎么分析_肯德尔和谐系数
  14. 神经网络模型-ART 自适应共振网络
  15. 《C Primer Plus》学习笔记—第9章
  16. 1688获得店铺详情数据教程
  17. 聚焦人机交互智能应用领域,APISIX 在希沃网关的应用与实践
  18. Tivoli Netcool/OMNIbus
  19. canvas+html实现视频弹幕,可以全屏实现
  20. PS之基本功能及抠图

热门文章

  1. 推荐--jQuery使用手册 1
  2. 免费的 AI 动作捕捉工具 #Rokoko Video
  3. chrome插件莫名消失【已解决】
  4. PHP is_file 和file_exists的区别
  5. 关于网站性能优化,一张思维导图够了
  6. ScheduledFuture
  7. nodejs获取本地IP地址
  8. 小程序和html5开发的差异
  9. 接口 和 http协议
  10. 知识图谱本体建模之RDF、RDFS、OWL详解