没有合适的资源?快使用搜索试试~ 我知道了~
首页java报表API源代码(程序数据集、自定义函数和导出API)
本代码主要开源了java报表工具中程序数据集和自定义函数部分的代码,通过该开源代码,你可以了解报表工具的内部原理,掌握国内主流java报表工具的各类接口使用方法,并运用该接口对软件产品或项目中的个性化的需求进行二次开发。 文中代码都有很详细的注释,并配合图例进行了说明。内容涵盖了简单程序数据集、带参程序数据集、SubSection函数-Oracle查询参数个数限制、自定义函数生产UPC条形码、导出api共六大部分。 另有报表调用的相关代码,如有需要可以另行下载。
资源详情
资源评论
资源推荐
概述
随着 FineReport 的发展,它提供的设计器和服务器应该能够满足您绝大部分的需求,
完全实现零编码的软件开发,革命性地加快软件开发速度,提高软件稳定性。但是需求是
千变万化的,而 FineReport 所包含的功能是报表行业中比较普遍的、典型的,也许某些
个性化的功能通过 FineReport 软件无法实现。因此 FineReport 开放了能够进行二次开
发的接口,来更好的满足您软件产品或项目中的个性化的需求。您可以根据该引擎 API 文
档学习各类接口的使用方法,另外若您是一名程序员,且对 FineReport 报表深感兴趣,
希望更深入地了解 FineReport 软件的内部原理,您也可以阅读该章节。
FineReport 引擎 API 文档对如何定义类、编译类文件及 JAVA 开发平台使用等 JAVA
基础知识未作介绍,因此在您查看引擎 API 文档前请确保您有一定的 JAVA 基础。
目录
1. 程序数据源
2.1 简单程序数据集
2.2 带参程序数据集
2. 自定义函数
3.1 自定义函数
3.2 SubSecon
函数 -Oracle
查询参数个数限制
3.3 自定义函数生产
UPC
条形码
3. 导出
api
注:另有报表调用的相关代码,如有需要可以另行下载。
程序数据集
简单程序数据集
FineReport 报表的数据来源可以是数据库数据或是文本数据,并且还可以是其它任何
类型的数据,因为 FineReport 是通过 TableData 接口来读取数据源的,而上述所有的数据
来源都实现了该接口,因此用户只要实现了 TableData 接口,也就可以用自定义类型的数
据源了(程序数据集),FineReport 报表引擎就能够读取定义的数据源作为报表数据源使
用。
TableData 接口主要有 5 个方法,如下:
//
获取
TableData
的总列数
publicintgetColumnCount();
//
获取
TableData
中第
columnIndex
列的列名
publicStringgetColumnName(intcolumnIndex);
//
判断是否存在第
rowIndex
行,这主要是用于处理超大数据时,完全遍历所有数据获
取总行数相当困难,用这个方法来判断第
rowIndex
行是否存在,存在则可读取
publicbooleanhasRow(introwIndex);
//
获取
TableData
的总行数
publicintgetRowCount();
//
获取
TableData
中第
columnIndex
列,第
rowIndex
行的数据
publicObjectgetValueAt(introwIndex,intcolumnIndex);
使用程序数据集分为如下三个步骤:
在某些应用场景中,需要在程序中对数据进行处理后再作为报表的数据源使用,以下
例子即为一个简单的不带参程序数据集 ArrayTableData 的使用过程,并以此简要说明程序
数据集的使用方法。
1.定义程序数据源
由之前的概述可知,程序数据集需要实现 TableData 接口,可以直接继承该接口,实
现其 5 个方法,也可以从 AbstractTableData 扩展,因为 AbstractTableData 已经实现
了默
认的 hasRow(int rowIndex)方法。
该例中的程序数据集 ArrayTableData 就是直接从 AbstractTableData 扩展的,完整代
码如下:
package com.fr.data;
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.1 把上面代码复制到 txt 文档重命名为 ArrayTableDataDemo.java
放到报表环境/WebReport/WEB-INF/classes/com/fr/data 这个目录下
1.2 编译 ArrayTableData.java 生成 ArrayTableData.class 类
将生成的类文件拷贝到报表工程/WEB-INF/classes 目录下。由于该类是在
com. fr.data 包中的,因此最终应该将该 ArrayTableData.class 放
在/WEB-INF/classes/com/fr/data 下面。此时该程序数据源便定义好了。
2. 配置程序数据源
2.1 新建报表
在报表数据集中新建程序数据源,选择我们定义好的程序数据集,如下图
名字可以自定义,如 student
3.使用程序数据集
配置好程序数据源后便可以使用定义的 student 程序数据集了,与其他类型的数据集使
用方法是相同的,可以通过拖拽方法实现单元格数据列绑定。如下图
带参程序数据集
在实际应用中,可能需要根据表名动态地改变数据源,比如在程序数据集中,通过传
进的表名参数,到数据库取出对应的表作为数据源。因为 FineReport 是通过 TableData 接
口来读取数据源的,而上述所有的数据来源都实现了该接口,因此用户只要实现了
TableData 接口,也就可以用自定义类型的数据源了(程序数据集),FineReport 报表引
擎就能够读取定义的数据源作为报表数据源使用。以下就对这种情况举例说明。
TableData 接口主要有 5 个方法,如下:
//
获取
TableData
的总列数
publicintgetColumnCount();
//
获取
TableData
中第
columnIndex
列的列名
publicStringgetColumnName(intcolumnIndex);
//
判断是否存在第
rowIndex
行,这主要是用于处理超大数据时,完全遍历所有数据获
取总行数相当困难,用这个方法来判断第
rowIndex
行是否存在,存在则可读取
publicbooleanhasRow(introwIndex);
//
获取
TableData
的总行数
publicintgetRowCount();
//
获取
TableData
中第
columnIndex
列,第
rowIndex
行的数据
publicObjectgetValueAt(introwIndex,intcolumnIndex);
使用程序数据集分为如下三个步骤:
►定义程序数据源
►配置程序数据源
►使用程序数据集
1. 定义程序数据源
首先在构建函数中定义好所用的程序数据集表结构,通过参数获得表名;其次在初始
化函数中准备数据并放入定义的表中;完整代码如下:
package com.fr.data;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
剩余19页未读,继续阅读
ONE_DATA
- 粉丝: 282
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论18