`
adm889486
  • 浏览: 38452 次
  • 性别: Icon_minigender_1
  • 来自: 绵阳
社区版块
存档分类
最新评论

JSP报表打印技术(6)——iReport和JasperReport组件

阅读更多
iReport和JasperReport组件是完全的开源项目,是当今世面上比较流行的制作报表工具,它们的优势不仅仅因为是开源项目,还由于高性能,友好的人性化设计界面,使得报表变得不再千篇一律,适用于多种数据源,可以导出多种文件格式,例如HTML、PDF、Excel等文件格式。
iReport和JasperReport组件最主要能在设计时使数据和设计分开,实现Web报表的分页打印,分组合计,变量加减处理,输出格式化,用户须按照编写的规则编写一个XML,然后得到用户所要的报表文件。
IReport组件下载地址是http://ireport.sourceforge.net,本书提供的版本是iReport-2.0.0,读者可自行下载最新版本,下载后安装,目录中会有一个名为"iReport.bat"的批处理文件,双击运行它,如图6.2所示。

若在JSP中使用iReport制作的报表需要另一个组件支持,这个组件就是JasperReport组件。
JasperReport下载地址是http://jasperreports.sourceforge.net ,JasperReport是一个灵活、功能强大的报表产生工具,可以以PDF、HTML或XML等多种形式产生报表,并支持CSV、XLS等格式报表,该引擎由Java编写,支持多种形式应用程序产生动态报表。JasperReport是按照一个预定义的XML文档来组织报表的数据,这些数据来源多样,包括关系型数据库、Java容器对象等。
首先简要介绍一下iReport组件的用法。
(1) 单击New Document创建一个新报表(也可以选Report Wizard报表向导来生成报表),也可以单击图标,来新建报表。
添写报表属性,在“报表名称”输入报表名字,在"预设尺寸"区内选择所要用的纸张及尺寸,在这里选择默认参数,可以修改"i18n"选项卡中的“XML 编码”,默认参数为"UTF-8"(如果认为有必要可以手动输入"GB2312"),,然后单击OK按钮。

(2)设置数据源。
首先把SQL Server 2000连接Java的驱动包放入iReport组件所在目录的lib中,这样iReport组件才可以使用数据源,单击菜单"Data",选中"连接/资料来源",单击"New"设置数据源,弹出对话框,
设置连接属性,其中有JavaBean、XML、JDBC等数据源,在这里选择JDBC数据源,输入数据源名称"Name",可以任意输入名字。在"JDBC Driver "下拉列表框中选择数据库连接驱动,选择Java连接SQL Server 2000驱动,连接JDBC的URL,。在"Server Address"输入框中输入服务器地址。在"DataBase"输入框中填写数据库名字。以及填上登录数据库的用户名"UserName"和密码"Password",然后单击密码输入框中边上的"Save Password"保存密码,如果不保存,每次执行报表时都会弹出要求输入连接数据库的用户名密码的对话框。
单击"Test"按钮,如果测试成功后会弹出对话框, 否则就会弹出连接错误对话框,这时就要检查的设置参数是否正确。

(3)iReport的中文处理。
iReport中文处理与iText组件相同,需要一个亚洲语言包"iTextAsian.jar"放到iReport目录下的lib目录中;修改报表的"PDF Font Name"将其改为"STSong-Light",再则是修改"PDF Embedded PDF Encoding" 改为"UniGB-UCS2-H(Chinese Simplified)" ,这样就可以解决iReport的中文问题。      
(4)报表编译时产生NoClassDefFoundException异常。
在代码处理JasperReport时出现该异常,是因为在引用JasperReport的一些jar文件不完整,处理方式是将JasperReport目录下的Demo\samples\Webapp\WEB-INF\lib\所有的jar文件,全引用了,以防不测,但会有一些不必要的包被引用了,读者可以自己将不必要的jar包去掉。
(5)另存为PDF时出现UnisupportEncodingException异常。
这是因为没有改变"PDF Font Name"应改为"STSong-Light"所致。
(6)iReport把xml文件编译成jasper文件。
单击图标,进行编译,把*.jrxml编译成*.jasper文件,同时显示报表内容,但有一点需要说明,如果在JSP中使用*.jasper时,手动编译出的*.jasper不能应用到JSP中,需要使用JasperReport类库中的JasperCompileManager类中的compileReportToFile()静态方法实现编译,如下述代码所示。
JasperCompileManager.compileReportToFile(*.jrxml,*.jasper)
(7)设置iReport的输出格式。
在前面曾提到过iReport可以以多种格式进行输出,如PDF,HTML,XML,XLS,CVS等文件格式,选择iReport菜单栏上的“建立”,可以看到缺省格式是“JRViewer”预览,这是iReport自身带的PDF格式预览,读者可以根据自己的需要选择报表输出格式,选择其他格式的预览,系统会以这种格式保存到磁盘中。保存位置读者也可以选择,在iReport菜单栏中选择Options,在其中选择Compiler标签,选择编译好的文件以及各种形式的报表保存位置,
(8)使用SQL语句查询。
大家都知道,数据查询必须要有查询语句,特别是综合查询时可能SQL语句会复杂一些, iReport组件可以使用查询语句输出报表,在菜单"Data"下选择“报表查询”项,添入查询语句,
单击"Save query"生成SQL脚本存入磁盘。如果需要在SQL语句中使用参数,例如以“名称”进行模糊查询,传递的参数为name,那么期望的SQL语句可能是下面这个样子。
Select * from users where name like ‘%name%’
其实在iReport组件中也可以很容易实现, Select * from users where name like '% $P{name}%’?,$P{name}是接下来要说明的参数。
(9)在iReport中设置参数
添加参数,读者可以右击Document下的Parameters,单击"Add",选择"Parameter",打开“添加参数”对话框,
添加参数名称,选择参数类型,设置好后,单击"OK"按钮,如果想在JSP中为名为"name"的参数赋值,需要引用下面的程序代码:
Map parameters=new HashMap();
parameter.put("name","p");
(10)报表的动态对象变量、参数、字段。
在使用iReport的过程中会碰到很多与变量(Variables)、参数(Parameters)、字段(Fields)有关的内容,现在介绍这些对象的使用和意义。
字段(Fields):是数据库抽取出来的,希望在报表中出现的数据库内容。例如一个ID的所有值为$F{ID}。
参数(Parameters):这是给报表的提供入口,例如希望在报表被解释的时候提供where语句的条件值,那么就可以使用参数(Parameters),$P{ parameterName }。
变量(Variables):这是报表中一些逻辑运算的表现,例如统计值,$V{ variablesName }。
每种对象的定义格式如每个对象的后面说明。
分享到:
评论

相关推荐

    iReport与JasperReport简介

    iReport是JasperReport的图形化设计工具,它为用户提供了直观的界面来创建和编辑报表模板。用户可以通过拖拽的方式添加表格、图表、文本框等元素,并设置相应的样式和数据绑定。iReport支持多种数据源,包括数据库...

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

    iReport 提供了 "Element properties" 和 "Element browser" 功能,用于查看和编辑报表中所有元素的属性,便于精细控制报表的外观和行为。 10. **Bands 和 Report Groups**: Bands 是报表的各个部分,如页面头部...

    iReport+JasperReport柱状图

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

    ireport+jasperreport API

    JasperReportHandbook.pdf是jasperreport的官方手册,提供了更全面的技术细节和最佳实践,包括高级功能如子报表、自定义图表、邮件发送等。 1. 子报表:学习如何嵌入子报表,处理多层次的数据结构,使得复杂报表的...

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

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

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

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

    iReport-JasperReport 报表开发指南

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

    ireport和jasperreport的简单使用

    ireport和jasperreport是用于创建和展示报表的开源工具,主要用于Java环境中。ireport是 JasperReport 的设计工具,允许用户通过图形化界面来设计复杂的报表,而jasperreport是报表引擎,负责解析ireport设计的报表...

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

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

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

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

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

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

    iReport+JasperReport教材两本以及demo

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

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

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

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

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

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

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

    ireport+jasperReport+Swing总结.doc

    #### 五、报表组件详解 - **Title (报表头)**:仅在报表首页显示一次,通常包含作者、生成时间等基本信息。 - **PageHeader (页头)**:每一页都会显示一次,常用于放置页码或页眉信息。 - **ColumnHeader (列头)**...

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

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

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

    iReport和Jasperreport整合开发web报表向导 iReport是一款功能强大且灵活的报表设计工具,能够与Jasperreport集成,生成精美的web报表。本文档将对iReport进行深入介绍,展示如何使用iReport设计报表、连接数据库、...

    ireport 子报表,行合并实例

    IReport和JasperReport是两个非常流行的Java报表工具,它们能够帮助开发者创建复杂、美观且功能丰富的报表。本篇将深入探讨如何利用IReport来实现子报表以及行合并的实例。 首先,IReport是一款基于GUI的报表设计...

Global site tag (gtag.js) - Google Analytics