- 浏览: 60419 次
- 性别:
- 来自: 深圳
文章分类
最新评论
转自: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 2723public class MongoDBDataClean ... -
db2
2012-02-20 17:37 665Class.forName("com.ibm.db2 ... -
网上银行one
2011-10-24 23:08 862关于网银的一些认识, ... -
send email by java api
2010-12-21 17:46 986First ,create a properies file ... -
Export the excel/txt file of report list by java
2010-09-21 16:16 1682First of all, we should click a ... -
batch execution
2010-02-26 17:09 770Statement st = null; try{ ... -
Socket -learning a little from IBM tutorial
2010-01-14 18:43 946There are three files to comple ... -
Simple expample of MessageDigest
2009-11-16 17:57 732When use the encrypted arithmet ... -
judgement method of collections
2009-10-19 18:18 592When the collections want to ev ... -
The difference of some collections
2009-09-24 18:05 716The content of this chapter is ... -
Aop of Spring2.5 doesnot support well in the jdk1.6
2009-08-20 20:53 695The exception throwed by the ap ... -
The usage of log4j
2009-08-05 15:41 645文章出处:http://www.blo ... -
The usage of time and date
2009-07-30 20:46 702There are some usage of time we ... -
Widget developpment by JIL SDK
2009-07-30 19:49 902Widget is an application that c ... -
Testing of override of toString()
2009-07-27 19:15 497At fisrt,thanks for the tips of ... -
Bubble Sort - The arithmetic always queried by interviewer
2009-07-27 18:26 774/** * * @author tanglei ...
相关推荐
`ireport`和`jasperreports`是两个广泛使用的开源工具,它们允许开发者创建复杂的、动态的报表,而`javabean`则是Java编程中用于封装数据的对象。在这个“ireport+javabean实现可视化报表”的项目中,我们将深入探讨...
ireport java sql 报表 javabean与 ireport结合使用
【标题】:“ireport+ javaBean 做数据源实例” 在Java开发中,报表的生成是一项常见的需求,用于展示和分析数据。ireport是一款基于Java的开源报表工具,它允许开发者通过简单的XML模板设计复杂的报表,并能方便地...
【ireport利用javabean做数据源】 在Java开发中,ireport是一个强大的报表工具,它允许开发者设计复杂的报表,并且能够与各种数据源进行交互。在这个场景中,我们将讨论如何利用javabean作为ireport的数据源来生成...
3. iReport导入数据源:在iReport设计工具中导入刚才创建的JavaBean类,作为数据源。 4. 打印报表:使用iReport工具设计报表,并将导入的数据源与报表关联,最终生成报表并打印。 提高篇主要介绍子报表的创建。子...
在软件开发中,报表生成是一个常见的需求,而iReport是一款广泛使用的开源报表设计工具,它允许开发者创建复杂的报表,并支持多种数据源,包括数据库、XML、JavaBean等。本文将详细讲解如何在iReport中使用JavaBean...
【标题解析】:“ireport利用javabean做数据源实例”这一标题表明我们将探讨如何使用iReport工具,一个用于设计JasperReports报表的开源工具,通过JavaBean对象作为数据源来创建和展示报表。JavaBean是一种符合特定...
本示例将向你展示如何利用iReport将JavaBean作为数据源,以生成定制化的报告。以下是对这个简单示例的详细解析: 1. **JavaBean作为数据源**:JavaBean是一种遵循特定规范的Java类,它封装了数据并提供了访问这些...
在网上找了很多ireport基于javabean的主子报表配置的文章。要么版本太老,要么无图无真相。对于bean中的子报表集合数据源怎么获取,始终不成功。现经过尝试终于弄明白是怎么回事了,上传以供分享。因从事IT工作,...
### IReport 使用 JavaBean 作为数据源导出 PDF #### 概述 本文档将详细介绍如何使用 IReport 工具,结合 JavaBean 集合作为数据源来创建和导出 PDF 报表。相比于传统的 JDBC 数据源,使用 JavaBean 作为数据源具有...
2. **配置数据源**: 在ireport中,可以设置JavaBean数据源,指定JavaBean类名和属性映射。 3. **生成.jasper文件**: 保存并编译.jrxml文件,生成.jasper二进制模板。 4. **Java代码集成**: 在Java项目中,加载....
在这个过程中,我们将深入探讨如何在`iReport`中使用`JavaBean`作为数据源来开发基于`JasperReports`的报表。 首先,我们需要了解`JavaBean`。`JavaBean`是一种符合特定规范的Java类,通常用于封装数据并提供公共...
本知识点主要探讨的是如何在iReport中使用JavaBean作为数据源来填充表格(Table)组件。我们将深入理解这个过程,并结合提供的资源进行详细阐述。 1. **JavaBean数据源的原理** JavaBean是一种符合特定规范的Java...
### iReport中使用JavaBean作为数据源开发JasperReports报表 #### 创建JavaBean 在iReport中使用JavaBean作为数据源来开发JasperReports报表时,首先需要创建一个简单的JavaBean对象来存储数据。以下是一个名为`...
在本项目"JavaWeb_Ireport_Jasper_JavaBean_Mysql"中,开发者使用了这些技术来实现一个数据驱动的报表系统。 Ireport是一个流行的报表设计工具,它是JasperReports库的一部分,允许开发者通过直观的用户界面创建...