- 浏览: 57856 次
- 性别:
- 来自: 深圳
文章分类
最新评论
转自:http://hi.baidu.com/nieweiguo/blog/item/b92e369bf0c882b6c8eaf476.html
步骤如下:
首先在ireprot里做好所需要报表,保存 好
ireport里面的字段就是你要传入到jasper里的list所封装的model的字段,一一对应即可,
在ireport里面要设置报表字段(如果要传参数到报表里,则要在ireport设置报表参数)
,做好报表后,就在后台ACTION(自己可以在JSP,SERVLET 封装等...)封装数据了,我做了个测试片段如下:
List list=new ArrayList();
for(int i=0;i<50;i++)
{
Account accout =new Account();
accout.setId(new Integer(i));
accout.setEmail("邮箱youxiang"+i);
accout.setLogin("登录名denglu"+i);
accout.setName("姓名xingm"+i);
accout.setPassword("密码mima"+i);
accout.setType("类型leixing"+i);
list.add(accout);
}
request.setAttribute("list",list);
request.setAttribute("test", "anie测试test");
return mapping.findForward("baobiao");
ACCOUNT MODEL就是你要显示在报表中的类型
接着就转发到baobiao.jsp页面了,此页面的代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.util.List"%>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.util.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.List"%>
<%
//获取过滤信息
String outputType = (String)request.getAttribute("outputType");
List list=(List)request.getAttribute("list");
String test = (String)request.getAttribute("test");
%>
<%
//下面两句 意思是ireport的报表XML文件在程序中动态编译成.jasper文件。注释掉就是指定了.jasper文件
//String path=application.getRealPath("/file");
//JasperCompileManager.compileReportToFile(path+"/anietest.jrxml",path+"/anietest.jasper");
File reportFile;
reportFile= new File(application.getRealPath("/file/anietest.jasper"));
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
Map parameters = new HashMap();
parameters.put("test",test);
//为数据源设置参数
//outputType="EXCEL";
if("HTML".equals(outputType))
{
System.out.println(outputType);
JasperPrint jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
new JRBeanCollectionDataSource(list)
);
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE) ;
exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE) ;
exporter.exportReport();
}
else if("PDF".equals(outputType))
{
System.out.println(outputType);
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
new JRBeanCollectionDataSource(list)
);
String fileName = "阿聂TEST.pdf";
fileName=java.net.URLEncoder.encode(fileName,"utf-8");
response.setContentType("application/download");
response.setHeader("Content-Disposition", "attachment; filename="+fileName);
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
//PDF 跟EXCEL需要此句,要不然会报错 HTML不需要
out.clear();
out=pageContext.pushBody();
}
else if("EXCEL".equals(outputType)){
System.out.println(outputType);
JasperPrint jasperPrint = JasperFillManager.fillReport(
reportFile.getPath(),
parameters,
new JRBeanCollectionDataSource(list)
);
response.setContentType("application/vnd.ms-excel");
JRXlsExporter exporter = new JRXlsExporter();
byte[] bytes;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
exporter.exportReport();
bytes = baos.toByteArray();
if (bytes != null && bytes.length > 0) {
response.reset();
String fileName = "阿聂TEST.xls";
fileName=java.net.URLEncoder.encode(fileName,"utf-8");
response.setContentType("application/download");
response.setHeader("Content-Disposition", "attachment; filename="+fileName);
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
//PDF 跟EXCEL需要此句,要不然会报错 HTML不需要
out.clear();
out=pageContext.pushBody();
}
}
%>
里面有写些需要改写地方,请慢慢参考吧,很简单,其中
Map parameters = new HashMap();
parameters.put("test",test); 这句是要设置在报表里的参数,通过放入MAP中然后
传给jasper报表输出 代码如下:JasperPrint jasperPrint = JasperFillManager.fillReport(
reportFile.getPath(),
parameters,
new JRBeanCollectionDataSource(list)
);
基本主要代码就是以上了,然后说一下需要的包,基本就是只需要这几个包就行了。测试成功,饼形报表跟柱形
报表慢慢研究中
发表评论
-
清理mongodb最老的数据
2017-01-18 14:20 2680public class MongoDBDataClean ... -
db2
2012-02-20 17:37 631Class.forName("com.ibm.db2 ... -
网上银行one
2011-10-24 23:08 823关于网银的一些认识, ... -
send email by java api
2010-12-21 17:46 950First ,create a properies file ... -
Export the excel/txt file of report list by java
2010-09-21 16:16 1644First of all, we should click a ... -
batch execution
2010-02-26 17:09 729Statement st = null; try{ ... -
Socket -learning a little from IBM tutorial
2010-01-14 18:43 909There are three files to comple ... -
Simple expample of MessageDigest
2009-11-16 17:57 705When use the encrypted arithmet ... -
judgement method of collections
2009-10-19 18:18 561When the collections want to ev ... -
The difference of some collections
2009-09-24 18:05 680The content of this chapter is ... -
Aop of Spring2.5 doesnot support well in the jdk1.6
2009-08-20 20:53 654The exception throwed by the ap ... -
The usage of log4j
2009-08-05 15:41 613文章出处:http://www.blo ... -
The usage of time and date
2009-07-30 20:46 679There are some usage of time we ... -
Widget developpment by JIL SDK
2009-07-30 19:49 862Widget is an application that c ... -
Testing of override of toString()
2009-07-27 19:15 455At fisrt,thanks for the tips of ... -
Bubble Sort - The arithmetic always queried by interviewer
2009-07-27 18:26 728/** * * @author tanglei ...
相关推荐
IREPORT使用JAVABEAN作为报表数据源IREPORT使用JAVABEAN作为报表数据源IREPORT使用JAVABEAN作为报表数据源
ireport java sql 报表 javabean与 ireport结合使用
在网上找了很多ireport基于javabean的主子报表配置的文章。要么版本太老,要么无图无真相。对于bean中的子报表集合数据源怎么获取,始终不成功。现经过尝试终于弄明白是怎么回事了,上传以供分享。因从事IT工作,...
iReport使用JavaBean做数据源
ireport+jasperrepot+javabean实现可视化报表的项目源文件
ireport利用javabean做数据源.docx
利用javabean数据源,ireport入门级普通报表和子报表
iReport使用JavaBean作为数据源——最简单的示例。 包含: 1、Java源文件(JavaBean)。 2、iReport的报表源文件(jrxml)。 3、详细的说明。
一看就会的实例。能够很快上手ireport
简单明了利用javabean做数据源,实现ireport报表功能
图示ireport中使用javabean作数据源开发基于jasperreports报表过程
下载包含程序源码,lib包,ireport创建模板操作文档,说明。程序可以在java myeclipse环境下直接运行。jasperreport版本6.3.1,ireport为5.6.0
本文档包含报表模板以及往模板嵌入一个子报表的全部过程,并包含完整导出PDF的SourceCode
ireport中使用javabean作数据源开发jasperreports报表的详细过程 附有图片
iReport数据库连接的建立 DataSource. 5 4.2. 创建报表(以几个不同类型的报表为例)... 7 4.2.1. iReport基本报表(例:预交费用和押金报表)... 7 4.2.2. iReport子报表SubReport(例:批量打印报表)... 13 ...
IReport的多栏使用,IReport中的如何使用变量进行合计,iReport使用JavaBean做数据源 ,如何取得ireport报表当前页及总页数,更多内容...
亲测可用,下载即可在myeclipse运行,兼容JavaBean和sql作为数据源,内有报表教程可供参考,在web端进行报表的显示功能。
ireport使用javabean做数据源