`
sxdsly
  • 浏览: 11528 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ireport和jasperReport小结

阅读更多

一个报表的结构大概是如下几个部分: title, pageHeader,columnHeader,detail,columnFooter,pageFooter,lastPageFooter,summary.

Title: 每个报表一般会有一个名字.
pageHeader: 报表的公共要素, 比如页码,创建时间,创建人等信息一般放置在这里.
columnHeader: 放列的名称.
detail: 放置需要循环输出的数据.
columnFooter: 列级别的统计计算值或是列的说明.
pageFooter: 放置页级别的统计值或是页的说明.
lastPageFooter: 最后一页特殊的格式, 可以放置总结.
summary: 只在最后一页才出现.

字段(Fields): 是数据源中抽取出来的,希望在报表中出现的数据库内容.$F{fieldName};
参数(Parameters): 你的应用需要提供给报表的入口, 比如你希望在报表给解释的时间提供where语句的条件值,那么就可以使用参数.$p{parameterName}
变量(Var): 这是报表中一些逻辑运算的表现,比如统计值,$V{variablesName}.

jasperReport的定义是一个xml文件,里面常见的节点如下:
parameter: 报表的查询参数,
queryString: 代表从数据库中取数据的Query.一个queryString中一般会有若干个parameter.
field: 代表报表数据的字段.
variable: 变量.
<jasperReport>
<parameter name="type" class="java.lang.String"/>
<queryString><![CDATA[select * from books where bookType=$P{type}]]></queryString>
<variable name="date" class="java.util.Date" resetType="Report">
<variableExpression><![CDATA[new Date()]]></variableExpression>
</variable>
<field name="bookid" class="java.lang.String"/>
<field name="bookname" class="java.lang.String"/>
<field name="booktype" class="java.lang.String"/>
<title>
<textFieldExpression class="java.lang.String">
<![CDATA[$P{type}+"类书籍汇总"]]>
</textFieldExpression>
</title>
<pageHeader>
<textFieldExpression class="java.lang.String">
<![CDATA["第"+$V{PAGE_NUMBER}.intValue()+"页"]]>
</textFieldExpression>
</pageHeader>
<columnHeader>
<text><![CDATA[编号]]></text>
<text><![CDATA[名称]]></text>
</columnHeader>
<detail>
<textFieldExpression class="java.lang.Integer">
<![CDATA[$F{bookid}]]>
</textFieldExpression>
<textFieldExpression class="java.lang.String">
<![CDATA[$F{bookname}]]>
</textFieldExpression>
<textFieldExpression class="java.lang.String">
<![CDATA[$F{booktype}]]>
</textFieldExpression>
</detail>
<columnFooter>
<band height="40" isSplitAllowed="true">
</band>
</columnFooter>
<pageFooter>
<text><![CDATA[本页合计:]]>
</text>
<textFieldExpression class="java.lang.Integer">
<![CDATA[$V{PAGE_COUNT}]]>
</textFieldExpression>
</pageFooter>
</jasperReport>

将设计好的报表嵌入到java程序中:
(1)将jasperReport及其所需的第三方api拷贝到web应用的lib中.JasperReport的项目目录下的doc/requirements.html 列出了所需的库.
(2)在jsp页面中获得参数
<% String booktype = (String)request.getParameter("booktype");%>
获得数据源:
<%
//得到数据源
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=;DatabaseName=library");
//确定报表文件(*.jasper)的路径获得这个的真实地址
File reportFile = new File(application.getRealPath("/reports/example.jasper"));
//下面这行代码告诉我们一个Jasper Report在JAVA程序中是一个对象
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
//下面这两行代码告诉我们要用“名值对”的方式来传递报表参数
Map parameters = new HashMap();
parameters.put("type", booktype);
//下面这行代码告诉我们下一步是要填充(fill)报表
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);

//运行报表的最一步则是要导出(export)报表到一个输出流
JRHtmlExporter exporter = new JRHtmlExporter();
StringBuffer sbuffer = new StringBuffer();
Map imagesMap = new HashMap();
session.setAttribute("IMAGES_MAP", imagesMap);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image.jsp?image=");
//导出报表
exporter.exportReport();
%>
经过上面的操作后,就将这个报表在页面中显示出来.

生成xls样式的:
基本的一些操作都相同:
JRXlsExporter exporter=new JRXlsExporter(); //生成的是excel的数据信息.
response.setContentType("application/vnd.ms-excel");
ServletOutputStream output = response.getOutputStream();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,output);
exporter.exportReport();

分享到:
评论

相关推荐

    iReport与JasperReport简介

    在IT领域,报告生成是数据分析和业务处理的重要环节,而iReport和JasperReport正是在这方面发挥重要作用的工具。本文将深入探讨这两个工具的使用和概念,帮助读者理解它们的功能、特点以及如何在实际项目中应用。 *...

    iReport+JasperReport柱状图

    作者分享了自己的实践经验,遇到的困难和解决方法,旨在帮助读者更好地理解和掌握iReport和JasperReport的使用。 一、确定数据源类型 在开发柱状图时,首先需要确定数据源类型。作者选择了JRDataSourceProvider...

    iReport 和 Jasperreport整合开发web报表向导2.doc

    iReport 是 JasperReport 的一个可视化设计工具,用于创建 JasperReport 报表模板。它提供了直观的图形用户界面,帮助用户设计复杂的报表布局,包括静态文本、图表、图像、表格等元素。 2. **iReport 主界面及操作...

    ireport+jasperreport API

    ireport和jasperreport是两款强大的开源报表工具,它们提供了丰富的API和设计工具,使得开发者能够创建从简单到复杂的各类报表。本指南将深入探讨这两个工具的核心功能、使用方法以及API的应用。 一、ireport简介与...

    ireport和jasperreport的简单使用

    1. **引入依赖**:在web应用中使用报表,需要将jasperreport和ireport相关的库文件添加到项目的类路径中,包括jasperreports、iText、iTextAsian、Apache Commons库以及数据库驱动等。 2. **存放报表文件**:将...

    iReport 和 Jasperreport整合开发web报表向导

    结合提供的文档资源"iReport 和 Jasperreport整合开发web报表向导1.doc"、"iReport 和 Jasperreport整合开发web报表向导2.doc"以及"iReport 和 Jasperreport整合开发web报表向导3.doc",你将能更深入地了解这一过程...

    CSDN技术中心 iReport 和 Jasperreport整合开发web报表向导.pdf

    ### CSDN技术中心 iReport 和 JasperReport 整合开发Web报表向导 #### 引言 在IT领域,特别是企业级应用开发中,报表工具的重要性不言而喻。随着技术的发展,各种报表生成工具应运而生,其中iReport与JasperReport...

    iReport+JasperReport教材两本以及demo

    iReport和JasperReport是两个在Java开发领域中广泛使用的报表工具,主要用于设计和生成复杂的业务报告。这两个工具是开源的,因此深受开发者喜爱。在本资料包中,你将获得两本关于iReport和JasperReport的教材,以及...

    iReport 和 Jasperreport整合开发web报表向1.doc

    【iReport 和 Jasperreport 整合开发Web报表】 iReport 和 Jasperreport 是两个在Java环境中用于创建和展示报表的重要工具。iReport 是一个基于GUI的报表设计工具,它专门用于设计Jasperreport的模板,而...

    iReport-JasperReport 报表开发指南

    《iReport-JasperReport 报表开发指南》是一本针对初学者的专业教程,旨在帮助读者掌握使用iReport和JasperReport进行报表开发的核心技术。iReport是一款强大的设计工具,而JasperReport则是一个流行的Java报表库,...

    ireport+jasperReport+Swing总结.doc

    ### ireport+jasperReport+Swing总结 #### 一、概述 本文档旨在总结 ireport 4.1.3 ...综上所述,通过 ireport 和 jasperReport 结合 Swing 可以轻松实现复杂报表的设计与生成,并将其无缝集成到 Java 应用程序中。

    IReport & JasperReport

    IReport与JasperReport是Java世界中广泛使用的报表设计工具和报表引擎,主要用于创建复杂、美观的静态和动态报表。这两个组件在企业级应用中发挥着至关重要的作用,帮助开发者生成数据可视化、业务分析所需的报告。 ...

    ireport+jasperreport联合开发java报表(PDF).rar

    《ireport+jasperreport联合开发Java报表》是针对Java开发者的一款强大的报表生成工具,它能够帮助程序员高效地创建、设计和导出各种复杂的业务报表,尤其是PDF格式的报表。本资料详细介绍了如何利用ireport和...

    iReport 和 Jasperreport整合开发web报表.rar

    `iReport`和`JasperReport`是两个在Java领域广泛使用的开源报表工具,它们在Web应用程序中尤其常见。本资料包"iReport 和 Jasperreport整合开发web报表.rar"提供了一个关于如何将两者整合到Web项目中的教程或示例。 ...

    iReport+jasperReport之客户端打印 ----数字签名

    ### iReport + JasperReport 客户端打印与数字签名详解 #### 一、概述 iReport 是一个用于设计 JasperReports 报告模板的图形界面工具,而 JasperReports 则是一款非常流行的 Java 报告工具,它能够从各种数据源...

    ireport+jasperreport开发中问题解决方案

    在使用iReport和JasperReport进行报表开发时,可能会遇到一系列问题,这些问题涵盖了报表样式、内容展示、数据处理等多个方面。以下是对标题和描述中提到的一些常见问题的详细解答: 1. **乱码问题**:当报表中出现...

    ireport-5.6.0 Jasperreport 报表工具 jar包大全

    "ireport-5.6.0 Jasperreport 报表工具 jar包大全" 这个标题提到了两个关键组件:iReport和JasperReport,它们都是用于创建和设计报表的重要工具,尤其在Java开发环境中广泛使用。标题中的“5.6.0”是这两个工具的...

    原创:iReport&JasperReport开发手记(一) List报表开发与发布

    ### iReport & JasperReport 开发手记:List报表开发与发布 #### 1. 概述 在B/S架构的应用程序开发中,报表处理一直是重要的组成部分。传统的处理方式包括生成CSV文件供用户下载后再行编辑,这种方式不仅效率低下...

    struts2+ireport+jasperreport报表设计简单示例

    使用ireport和struts2进行报表...java工程的lib里包含丰富的jar包,且很多都是从各个网站下载的最新版本,文件夹内还包含一些ireport和jasperreport文档,适合刚入门学习报表的作参考。没分了,收个友情分1分,勿怪。

Global site tag (gtag.js) - Google Analytics