图示ireport
中使用javabean
作数据源开发
基于
jasperreports
报表
过程
——学习笔记系列之ireport起步
xmlin
本文不讲原理,因为网上的资源很多,本文以一个简单的日销售报表为例,记录在
ireport
中使用
javabe
an
作数据源开发
基于
jasperreports
报表
过程
.
一.准备工作
1.
正确安装
jdk
2.
到
http://ireport.sourceforge.net/
去下载
ireport,
本文使用
1.3.1
版本,解压
iReport
在任意目录,解压后的文件里面有一个
iReport.bat
,通过双击运行。
3.
到
http://jasperreports.sourceforge.net/index.html
下载
jasperreport,
本文使用的是
1.3.1
版本,解压到任意目录,开发中需要使用其中的
jasperreports-1.3.1.jar
、
commons-logging-1.0.2.jar
、
commons-collections-2.1.jar
,使用
bean
做为数据源还需要
commons-beanutils-1.7.jar,
如果需要生成
pdf
文件
,
还需要
itext-1.3.1.jar
、
iTextAsian.jar,
如果使用动态编译
jrxml
文件,还需要
commons-digester-1.7.jar
。
二.创建
javabean
1.
创建
DailySales.java,
一个简单
VO
bean
。
import
java.io.Serializable;
public
class
DailySales
implements
Serializable
{
private
static
final
long
serialVersionUID
= 1L;
private
String
productNo
;
private
String
productName
;
private
int
number
;
private
int
money
;
private
int
id
;
public
DailySales(String productNo, String productName,
int
number,
int
money)
{
this
.
productNo
= productNo;
this
.
productName
= productName;
this
.
number
= number;
this
.
money
= money;
}
public
String getProductNo()
{
return
productNo
;
}
public
void
setProductNo(String productNo)
{
this
.
productNo
= productNo;
}
public
String getProductName()
{
return
productName
;
}
public
void
setProductName(String productName)
{
this
.
productName
= productName;
}
public
int
getNumber()
{
return
number
;
}
public
void
setNumber(
int
number)
{
this
.
number
= number;
}
public
int
getMoney()
{
return
money
;
}
public
void
setMoney(
int
money)
{
this
.
money
= money;
}
public
int
getId()
{
return
id
;
}
public
void
setId(
int
id)
{
this
.
id
= id;
}
}
2
.生成数据源
import
java.util.Arrays;
import
java.util.Collection;
/**
*
简单工厂类,取得数据
*
@author
xmlin
*
*/
public
class
DailySalesFactory
{
//
为了在
ireport
中能够测试,必须使用
static
方法
public
static
Collection<DailySales> getBeanCollection()
{
//
数据源的生成,通常调用
dao
操作
List<DailySales>
data =
new
ArrayList<DailySales>();
for
(
int
i = 0; i < 100; i++)
{
data.add(
new
DailySales(
"
货号
"
+ i,
"
产品
"
+ i, i, i * 100));
}
return
data;
}
}
三.使用
ireport
开发报表样式
1.新建一个项目。
2.设置类路径,在菜单“
options”
中选择
Classpath,
点击在弹出框中的
add
folder
,填写
javabean
编译成的
.class
文件存放的路径
.
点
save
Classpath
完成。如图
3.设置数据源.在菜单"
Data
"中选择”
Connection/Data
sources”,
点击在弹出框中的
new
按钮增加一个数据源.如图
其中
Name
随便取一个名字,T
ype
of Connection/Data
选择
JavaBeans
set data source,
如果使用其它的数据源则选择其它的选项.F
actory
class
为我们刚才创建的
Factory
类,里面包含取得测试数据的静态方法
getBeanCollection()
.用
Test
测试是否成功,点
Save
保存.
4.
设置活动连接.在菜单"
Data
"中选择”
Set
Active Connection”.
5.
Report
Query ,
在菜单"
Data
"中选择”
Report
Query”,
填写
javabean,
即我们创建的
VO
bean.
如图
6
.
设计报表.
设计日期字段如图
设计填充字段
,
如图
设计页数字段如图
设计好的报表样式如图
点菜单"
build
"中的"
compile
"进行编译,然后再”
execute
with connection datasource”
就可以看到报表的结果了.
报表设计完成,在
ireport
的执行路径下会生成一个
DailySales.jasper
的文件.
四.生成报表
生成的
DailySales.jasper
可以在
web
服务端生成报表
,
也可以在肥客户端如
swing
生成
,
这里写一个在肥客户端和简单运用
.
import
java.awt.Dimension;
import
java.util.HashMap;
import
java.util.Map;
import
net.sf.jasperreports.engine.JRException;
import
net.sf.jasperreports.engine.JasperFillManager;
import
net.sf.jasperreports.engine.JasperPrint;
import
net.sf.jasperreports.engine.JasperReport;
import
net.sf.jasperreports.engine.util.JRLoader;
import
net.sf.jasperreports.view.JasperViewer;
public
class
TestReport
{
public
static
void
main(String[] args)
{
TestReport.
showReport
();
}
private
static
void
showReport()
{
String
reportPath =
"D:\\dailySales.jasper"
;
Map
parameters =
new
HashMap();
//
如果报表中有用到变量,在这里给它赋值.
//parameters.put("ReportTitle",
"
报表标题
");
try
{
JasperReport
jasperReport = (JasperReport) JRLoader.
loadObject
(reportPath);
JasperPrint
jasperPrint = JasperFillManager.
fillReport
(jasperReport,
parameters,
new
JRBeanCollectionDataSource(getBeanCollection()
)
);
JasperViewer
jrview =
new
JasperViewer(jasperPrint);
jrview.setPreferredSize(
new
Dimension(200,100));
jrview.setVisible(
true
);
}
catch
(JRException e)
{
e.printStackTrace();
}
catch
(Exception e)
{
e.printStackTrace();
}
}
}
运行生成的结果如图
生成各种格式的报表文件
:
public
static
void
main(String[] args)
{
try
{
//
编译报表,并
jrxml
所在的目录中生成
jasper
文件
JasperCompileManager.
compileReportToFile
(
"d:\\test.jrxml"
);
Map
param =
new
HashMap
();
JasperPrint
jasperPrint = JasperFillManager.
fillReport
(
"d:\\test.jasper"
,
param,
new
JRBeanCollectionDataSource(DailySalesFactory.
getBeanCollection
()));
//
生成
html
和
pdf
也可以使用
JRExporter
来生成
JasperExportManager.
exportReportToHtmlFile
(jasperPrint,
"d:\\test.html"
);
JasperExportManager.
exportReportToPdfFile
(jasperPrint,
"d:\\test.pdf"
);
//
使用
JRExporter
来生成
XLS,
很多参数可以查
api
或
ireport
的属性窗口
JRExporter
xlsExporter =
new
JRXlsExporter();
ByteArrayOutputStream
xlsOut =
new
ByteArrayOutputStream();
xlsExporter.setParameter(JRExporterParameter.
JASPER_PRINT
,
jasperPrint);
xlsExporter.setParameter(JRExporterParameter.
OUTPUT_STREAM
,
xlsOut);
xlsExporter.setParameter(JRXlsExporterParameter.
IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS
,
Boolean.
TRUE
);
//
删除记录最下面的空行
xlsExporter.setParameter(JRXlsExporterParameter.
IS_ONE_PAGE_PER_SHEET
,
Boolean.
FALSE
);
//
删除多余的
ColumnHeader
xlsExporter.setParameter(JRXlsExporterParameter.
IS_WHITE_PAGE_BACKGROUND
,
Boolean.
FALSE
);
//
显示边框
xlsExporter.exportReport();
FileOutputStream
out =
new
FileOutputStream(
new
File(
"d:\\test.xls"
));
out.write(xlsOut.toByteArray());
//
使用
JRExporter
来生成
html
,
很多参数可以查
api
或
ireport
的属性窗口
JRExporter
htmlExporter =
new
JRHtmlExporter();
ByteArrayOutputStream
htmlOut =
new
ByteArrayOutputStream();
htmlExporter.setParameter(JRHtmlExporterParameter.
JASPER_PRINT
,
jasperPrint);
htmlExporter.setParameter(JRHtmlExporterParameter.
OUTPUT_STREAM
,
htmlOut);
htmlExporter.setParameter(JRHtmlExporterParameter.
CHARACTER_ENCODING
,
"utf-8"
);
htmlExporter.setParameter(JRHtmlExporterParameter.
IS_USING_IMAGES_TO_ALIGN
,
Boolean.
FALSE
);
htmlExporter.exportReport();
FileOutputStream
out2 =
new
FileOutputStream(
new
File(
"d:\\test1.html"
));
out2.write(htmlOut.toByteArray());
}
catch
(Exception e)
{
//
TODO
Auto-generated catch block
e.printStackTrace();
}
}
分享到:
相关推荐
ireport中使用javabean作数据源开发jasperreports报表的详细过程 附有图片
图示ireport 中使用javabean 作数据源开发 基于 jasperreports 报表 过程
IREPORT使用JAVABEAN作为报表数据源IREPORT使用JAVABEAN作为报表数据源IREPORT使用JAVABEAN作为报表数据源
iReport使用JavaBean做数据源
ireport利用javabean做数据源.docx
iReport使用JavaBean作为数据源——最简单的示例。 包含: 1、Java源文件(JavaBean)。 2、iReport的报表源文件(jrxml)。 3、详细的说明。
下载包含程序源码,lib包,ireport创建模板操作文档,说明。程序可以在java myeclipse环境下直接运行。jasperreport版本6.3.1,ireport为5.6.0
简单明了利用javabean做数据源,实现ireport报表功能
iReport-JasperReports报表开发指南+操作手册 含书签
ireport java sql 报表 javabean与 ireport结合使用
NULL 博文链接:https://shouzhang1-2.iteye.com/blog/1973767
在网上找了很多ireport基于javabean的主子报表配置的文章。要么版本太老,要么无图无真相。对于bean中的子报表集合数据源怎么获取,始终不成功。现经过尝试终于弄明白是怎么回事了,上传以供分享。因从事IT工作,...
一看就会的实例。能够很快上手ireport