报表数据可源自数据库、文本文件或多种其他数据格式。用户只需继承并实现 abstracttabledata 抽象类,即可将自定义数据结构作为报表数据源,从而灵活构建符合业务需求的数据集,增强系统在数据处理方面的可扩展性与环境适应能力。
1、 实现原理
2、 AbstractTableData 抽象类定义了五个关键方法,具体如下所示。
3、 获取抽象表格中列的总数。
4、 获取 AbstractTableData 中指定列索引(columnIndex)所对应的列标题(列名)。
5、 判断第 rowIndex 行是否实际存在;该机制在面对海量数据时尤为实用——无需遍历全部记录即可确认某行是否存在,若返回 true,则可安全执行后续读取操作。
6、 获取抽象表格数据的总行数。
7、 获取位于第 rowIndex 行、第 columnIndex 列交叉位置的具体单元格值。
8、 在某些业务场景中,需先在应用层对原始数据进行加工处理,再将处理后的结果作为报表的数据输入源。
9、 示例说明
10、 示例数据集由两列组成:Name 和 Score;对应数据为:Alex 得 15 分,Helly 得 22 分,Bobby 得 99 分。
11、 配置程序级数据源
12、 新建一个 Java 类,继承 AbstractTableData,并完整重写其全部抽象方法。
13、 编译 ArrayTableDataDemo.java 源文件,生成 ArrayTableDataDemo.class 字节码文件。
14、 将编译所得的 class 文件复制至报表项目 WEB-INF/classes 目录下。因该类所属包名为 com.fr.data,故须将其置于 WEB-INF/classes/com/fr/data 路径中。完成此步骤后,程序数据源即完成注册,可被报表引擎直接识别与调用,无需额外配置;务必确保目录层级与包声明严格匹配,以防类加载失败。
15、 添加程序数据源
16、 在模板设计器中,于数据集区域点击“+”号按钮,选择“程序数据集”,随后在弹出窗口中定位并选中已部署的 ArrayTableDataDemo.class 类文件,操作界面如下所示。

17、 使用程序数据集
18、 数据源配置完成后,该数据集即可像普通数据集一样参与报表设计,支持通过拖拽方式将字段绑定至单元格,实现数据展示,操作示意如下。











