1、实现原理AbstractTableData抽象类主要有5个方法,如下://获取AbstractTableData的总列数public int getColumnCount();//获取AbstractTableData中第columnIndex列的列名public String getColumnName(int columnIndex);//判断是否存在第rowIndex行,这主要是用于处理超大数据时,完全遍历所有数据获取总行数相当困难,用这个方法来判断第rowIndex行是否存在,存在则可读取public boolean hasRow(int rowIndex);//获取AbstractTableData的总行数public int getRowCount();//获取AbstractTableData中第columnIndex列,第rowIndex行的数据public Object getValueAt(int rowIndex, int columnIndex);在某些应用场景中,需要在程序中对数据进行处理后再作为报表的数据源使用。
2、示例下面我们定义数据集为如下样式:列为Name,Score,值分别为Alex,15;Helly,22;Bobby,99作为程序数据集。
3、定义程序数据源定义一个类,继承AbstractTableData,并实现里面的方法
4、将ArrayTableDataDemo.java编译生成ArrayTableDataDemo.class类。将 生成的类文件拷贝到报表工程/WEB-INF/classes目录下。由于该类是在com. fr.data包中的,因此最终应该将该ArrayTableData.class放在/WEB-INF/classes/com/fr/data下面。 此时该程序数据源便定义好了
5、配置程序数据源点击模板数据集下面的加号,选择程序数据集,然后在弹出的程序数据集对话框中,选择对应的class文件,如下图:
6、使用程序数据集配置好程序数据源后便可以使用定义的程序数据集了,与其他类型的数据集使用方法是相同的,可以通过拖拽方法实现单元格数据列绑定。如下图: