互联网服务java商业智能

Java报表工具不带参程序数据集

       在某些应用场景中,需要在程序中对数据进行处理后再作为报表的数据源使用,以下例子即为一个简单的不带参程序数据集ArrayTableData的使用过程,并以此简要说明程序数据集的使用方法。1.定义程序数据源由之前的概述可知,程序数据集需要实现TableData...显示全部

       在某些应用场景中,需要在程序中对数据进行处理后再作为报表的数据源使用,以下例子即为一个简单的不带参程序数据集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.5WebReportWEB-INFclassescomdemo这个目录下

2.打开开始cmd—cd—输入C:FineReport6.5WebReportWEB-INFclasses
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

收起
参与2

返回xiaopeng_521a的回答

xiaopeng_521axiaopeng_521a研发工程师x p
看看再说!
互联网服务 · 2011-07-14
浏览590

回答者

xiaopeng_521a
研发工程师x p

xiaopeng_521a 最近回答过的问题

回答状态

  • 发布时间:2011-07-14
  • 关注会员:1 人
  • 回答浏览:590
  • X社区推广