简单程序数据集
FineReport 设计器本身已经提供了数据库数据源、文本数据源、xml 数据源等多种数据来源
方式,同时程序员还可以通过
java 程序自行生成数据来源,只需要实现 TableData 接口便
可以了。
1. 问题描述
FineReport 报表的数据来源可以是数据库数据或是文本数据,并且还可以是其它任何类型
的数据,因为
FineReport 是通过 AbstractTableData 抽象类来读取数据源的,而上述所有
的数据来源都继承实现其抽象方法,因此只要实现了
AbstractTableData 抽象类,也就可以
用自定义类型的数据源了(程序数据集),
FineReport 报表引擎就能够读取定义的数据源
作为报表数据源使用。
2.实现原理
AbstractTableData 抽象类主要有 5 个方法,如下:
1.获取 AbstractTableData 的总列数
public int
getColumnCount
();
2.获取 AbstractTableData 中第 columnIndex 列的列名
public
String
getColumnName
(
int
columnIndex);
3.判断是否存在第 rowIndex 行,这主要是用于处理超大数据时,完全遍历所有数据获取总
行数相当困难,用这个方法来判断第
rowIndex 行是否存在,存在则可读取
public boolean
hasRow
(
int
rowIndex);
4.获取 AbstractTableData 的总行数
public int
getRowCount
();
5.获取 AbstractTableData 中第 columnIndex 列,第 rowIndex 行的数据
public
Object
getValueAt
(
int
rowIndex,
int
columnIndex);
在某些应用场景中,需要在程序中对数据进行处理后再作为报表的数据源使用。