报表的数据来源通常分为两类:一类是数据库或文本文件,另一类则可来自各种其他类型的数据。只要用户实现相应的抽象类,就能使用自定义程序数据集。以finereport为例,该报表软件支持灵活接入不同数据源,通过简单配置即可将各类数据高效整合进报表中,满足多样化需求。
1、 工作原理
2、 AbstractTableData抽象类包含五个核心方法,具体如下所示。
3、 获取抽象表数据的列数总数。
4、 获取AbstractTableData中指定列索引处的列名称。
5、 判断第rowIndex行是否存在,主要用于处理超大数据时避免完全遍历获取总行数的困难。通过该方法可确认指定行是否可读,若存在则允许读取,提升大数据场景下的处理效率与可行性。
6、 获取抽象表数据的总行数信息
7、 获取抽象表数据中指定行列位置的数值,即第columnIndex列与第rowIndex行交叉处的数据内容。
8、 某些场景下,需先在程序中处理数据,再将其作为报表数据源。
9、 示例
10、 数据集包含三行数据,字段为姓名和分数,对应内容分别是:Alex得15分,Helly得22分,Bobby得99分。
11、 设定程序数据来源
12、 创建一个类继承自AbstractTableData,并重写其内部方法以实现具体功能。
13、 将ArrayTableDataDemo.java文件进行编译,生成对应的ArrayTableDataDemo.class字节码文件。
14、 将生成的类文件复制到报表工程的 WEB-INF/classes 目录中。由于该类属于 com.fr.data 包,因此需将 ArrayTableData.class 文件放置在 WEB-INF/classes/com/fr/data 路径下。完成此操作后,程序数据源即配置完毕,可在项目中正常使用该数据源进行相关处理与调用,确保路径正确以避免类加载失败。
15、 设置程序数据来源
16、 在模板数据集下方点击加号,选择程序数据集,在弹出的对话框中选取相应的class文件,操作所示。

17、 运用程序化数据集合
18、 配置完程序数据源后,即可使用已定义的数据集,其操作方式与其他数据集一致,支持通过拖拽完成单元格数据列的绑定,具体所示。











