1、JasperReports简介
1) JaspersoftCommunity Jasper 产品列表
Ø JasperReportsServer
Ø JaspersoftStudio
Ø JasperReports Library
Ø JaspersoftETL
Ø Visualize.js
2) JasperReports介绍
JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports 支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。
3) JasperReportsLicense授权
Provider: JaspersoftCorporation
Category:
License: LGPL
即是说,可以免费使用JasperReports开发产品,而不公开产品源代码。但有个前提:如果对JasperReports源码进行了修改或衍生,则必须公开整个产品的源码。
4) 官网网址:
http://community.jaspersoft.com/project/jasperreports-library
2、iReport工具简介
iReport也是开源组织sf.net中的一款免费软件,是为JasperReport设计的强大的,直观的,易于使用的可视化报表设计器,采用纯Java开发。这个工具允许用户可视化编辑包含charts、图片、子报表等的复杂报表。iReport 还集成了JFreeChart图表制作包,允许用户可视化地编辑XML(JasperDesign)文件。用于打印的数据可以通过多种方式获取包括:JDBC,TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。它支持多种输出格式包括:PDF,RTF,XML,XLS,CSV,HTM。
注意下载的iReport一定要与你所使用的JasperReport 版本相匹配
下载地址:
https://sourceforge.net/projects/ireport/files/?source=navbar
下载安装后,可以iReport文件夹中,可以找到它对应的JasperReports library.
3、iReport报表绘制
不同版本的iReport在界面上会存在一些差异,以下文档基于iReport-5.5.0编写
1) 新建报表
【文件】à【New…】
选择一个模版,【Openthis Template】
通过【Browse】选择文件保存位置,并填写报表名称【Report name】
完成
2) 创建Database Sources
点击【ReportDatasources】图标
选择一个datasourcetype,这里选【Database JDBC connection】
填写数据库连续的相关信息,并保存
勾选默认Datasources,并关闭窗口
3)
设置报表主要SQL
输入主要SQL,相应的结果集的列会出现在下方
4) 报表结构
5) 在Detail中使用SQL结果
6)
使用iReport内置变量
7) 使用报表外部参数
右键【Parameters】,选择【添加Parameter】
通过右侧的【属性面板】修改参数名称,并拖动到报表中
8) 使用Dateset 创建汇总报表 (次要SQL)
右键【报表名称】(比如report_test002),选择【Add Dataset】
填写Dataset名称,【下一步】
选择DataSources,并填写SQL语句
选择要使用的列,并【下一步】
使用Group组自动Group up,也可通过SQL进行Group up
通过【窗口-->组件面板】打开组件面板
拖动Chart图标到报表中
选择一个图表类型,【OK】
选择要使用的DataSet(比如上文刚刚创建的myDataSet1)
填写Series描述
通过右侧按钮填写横坐标分组组名,即分组值
9) 预览报表
通过【预览】图标查看报表结果
如果有外部参数,将会弹出提示框要求录入
看到报表结果,可以通过【Designer】图标返回到设计界面
10)编译报表
通过【编译】图标,可以对报表进行编译
编译后,同个目录下,可以找到编译后的文件:
比如,report_test002.jasper
4、Java报表生成
1) 引用JasperReports Library
在Java Project中引入Jasper相关的jar包。(当然也需要DB 驱动的jar)
以下提供JasperReports 6.2.1版本的maven配置
net.sf.jasperreports
jasperreports
6.2.1
org.codehaus.groovy
groovy-all
2.4.7
Oracle驱动的Maven配置
com.oracle
ojdbc6
12.1.0.2
2) 使用JasperReports Library导出文件
public class JasperReportsDemo001 {
public static void main(String[] args)throws Exception {
//加载DB驱动,并获得DB连接
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@192.168.100.26:1521:LSSRTEST";
String user = "cam";
String password = "myPassword";
Connection conn = DriverManager.getConnection(url, user, password);
//设定报表所需要的外部参数内容
Map rptParameters = new HashMap();
rptParameters.put("myParam", "hello world");
//传入报表源文件绝对路径,外部参数对象,DB连接,得到JasperPring对象
JasperPrint jasperPrint = JasperFillManager.fillReport("D:/temp/jasper_test/report_test001.jasper", rptParameters, conn);
//导出PDF文件
JasperExportManager.exportReportToPdfFile(jasperPrint, "D:/temp/jasper_test/test.pdf");
//导入HTML文件
JasperExportManager.exportReportToHtmlFile(jasperPrint, "D:/temp/jasper_test/test.html");
//执行结束
System.out.println("Export success!!");
}
}