报表数据可来源于数据库、文本或其他各类数据。用户只需实现AbstractTableData抽象类,即可使用自定义数据类型作为数据源,灵活构建程序数据集,满足多样化报表需求,提升数据处理的扩展性与适应能力。
1、 原理实现
2、 AbstractTableData抽象类包含五个核心方法,具体如下所示。
3、 获取抽象表格数据的列数总和。
4、 获取AbstractTableData中指定列索引处的列名称。
5、 用于判断第rowIndex行是否存在,尤其在处理超大数据时,遍历全部数据统计总行数较为困难,通过此方法可确认该行是否存在,若存在则可进行读取操作。
6、 获取抽象表格数据的总行数信息
7、 获取AbstractTableData中指定行列位置的数据,即第columnIndex列与第rowIndex行交叉处的值。
8、 某些场景下,需先在程序中处理数据,再将其作为报表的数据来源。
9、 示例
10、 数据集结构包含两列:Name与Score,对应数据为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、 配置完程序数据源后,即可使用已定义的数据集,其用法与其他类型一致,支持通过拖拽方式完成单元格数据列的绑定,具体操作所示。
