在某些應用場景中,需要在程序中對數據進行處理后再作為報表的數據源使用,以下例子即為一個簡單的不帶參程序數據集ArrayTableData的使用過程,并以此簡要說明程序數據集的使用方法。
1. 定義程序數據源
由之前的概述可知,程序數據集需要實現TableData接口,可以直接繼承該接口,實現其5個方法,也可以從AbstractTableData擴展,因為AbstractTableData已經實現了默認的hasRow(int rowIndex)方法。
該例中的程序數據集ArrayTableData就是直接從AbstractTableData擴展的,完整代碼如下:
package com.demo;
import com.fr.data.AbstractTableData;
public class ArrayTableDataDemo extends AbstractTableData {
//定義程序數據集的列名與數據保存位置
private String[] columnNames;
private Object[][] rowData;
//實現構建函數,在構建函數中準備數據
public ArrayTableDataDemo(){
String[] columnNames ={"Name","Score"};
Object[][] datas = {{"Alex",new Integer(15)},{"Helly",new Integer(22)},{"Bobby",new Integer(99)}};
this.columnNames = columnNames;
this.rowData = datas;
}
//實現TableData的其他四個方法,因為AbstractTableData已經實現了hasRow方法
public int getColumnCount(){
return columnNames.length;
}
public String getColumnName(int columnIndex){
return columnNames[columnIndex];
}
public int getRowCount(){
return rowData.length;
}
public Object getValueAt(int rowIndex, int columnIndex){
return rowData[rowIndex][columnIndex];
}
}
1.把上面代碼復制到txt文檔重命名為ArrayTableDataDemo.java。放到C:\FineReport6.5\WebReport\WEB-INF\classes\com\demo這個目錄下
2.打開開始cmd—cd—輸入C:\FineReport6.5\WebReport\WEB-INF\classes enter 然后 javac –classpath ../lib/fr-server-6.5.jar com/demo/ArrayTableDataDemo.java enter 就OK了.
編譯ArrayTableData.java生成ArrayTableData.class類。將生成的類文件拷貝到報表工程/WEB-INF/classes目錄下。由于該類是在com.demo包中的,因此最終應該將該ArrayTableData.class放在/WEB-INF/classes/com/demo下面。此時該程序數據源便定義好了。
2. 配置程序數據源
? 新建報表
? 在報表數據集中新建程序數據源,選擇我們定義好的程序數據集,如下圖
名字可以自定義,如student
3. 使用程序數據集
配置好程序數據源后便可以使用定義的student程序數據集了,與其他類型的數據集使用方法是相同的,可以通過拖拽方法實現單元格數據列綁定。如下圖
文章轉自:http://blog.vsharing.com/fanfanzheng/A1368702.html
了解Java報表工具就從這里開始