JasperReports入门详细步骤
JasperReports入门详细步骤
JasperReports⼊门详细步骤JasperReports报表⽣成的基本步骤:1.扩展名为.jrxml的⽂件为标准的xml⽂件,该⽂件定义了报表的格式和数据构成。
可以通过jasperReports的“黄⾦搭档”iReport以可视化的⽅式⽣成并编辑这个⽂件。
2.jrxml⽂件经过JasperReports API 编译后将⽣成扩展名为.jasper的⼆进制⽂件。
3.可以调⽤JasperReports API针对jasper⽂件进⾏数据和参数的填充,⽣成扩展名为.jrprint的⽂件。
4.调⽤JasperReports API可以将jrprint⽂件最终导出成PDF、Excel、Html等各种格式的⽂件。
下⾯将采⽤iReport + JasperReports ⽣成如下图的PDF格式报表,表格中的数据来源于数据库,是在固定格式报表基础上,由JasperReport填充得到的。
整个报表的⽣成过程需要两个步骤:1.使⽤iReport⽣成规定报表格式和数据构成的jrxml⽂件。
2.调⽤JasperReports API 编译、填充并导出固定格式的报表。
⼀、⽤iReport⽣成报表⽂件(.jrxml)开源⼯具iReport⽤于定义报表的格式,可以从其官⽅⽹站下载/doc/6b5f642be2bd960590c677bc.html /cap3.html本应⽤所使⽤的是iReport-1.2.2-windows-installer.exe 安装程序,启动后,按照向导即可安装(要确认系统中装有1.4版本以上JDK)。
下⾯的操作⼤致分为12个步骤:步骤1:安装成功后启动该程序,将显⽰如下画⾯,选择菜单“File->New Document”新建报表⽂档,可在弹出的对话框选择报表的⼤⼩、版式等。
步骤2:按照默认版式创建报表,选择菜单“Data->Connections/Datasources”指定数据库连接或数据源,在弹出的对话框中单击“New”,并在弹出的对话框中指定数据库的连接参数(驱动类、URL、⽤户名和密码等)iReport通过JDBC 连接数据库,要确认相应数据库的驱动类置于iReport安装路径的lib⽂件夹下。
jasperReports、iReport使用说明
jasperReports、iReport使用说明相关网址JasperReport下载地址: IReport下载地址:iText亚洲语言包下载地址:/iText JasperReports API 帮助:/api/1. readme为什么需要JasperReports?JasperReports是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,XML,Excel(通过POI或JExcelAPI实现)和Rtf(通过POI实现)格式。
该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。
它的主要目的是辅助生成面向页面的(page oriented),准备付诸打印的文档。
JasperReport借由定义于XML文档中的report design进行数据组织。
这些数据可能来自不同的数据源,包括关系型数据库,collections,java对象数组。
通过实现简单的接口,用户就可以将report library插入到订制好的数据源中。
为什么需要iReport?JasperReport借由定义于XML文档中的report design进行数据组织但是繁琐的XML标记和功能API在提供强大的动态及可扩展开发的同时也带来了超高的复杂性,所以我们需要一个图形化可视的IDE来编辑符合jasperReports API的XML文件。
而iReport正是这样一款工具。
我们用iReport可以进行可视化的报表设计。
然而任何事物都不是十全十美的,iReport这一款工具带给我们方便、快捷、直观的同时,也损失了报表设计的灵活性。
但就其实用性而言,所损失的灵活性也就微乎其微了。
2. iReport上手(1) 语言设置,安装好iReport以后,默认语言是繁体中文(2) 下面是一个较快上手的小例子,如有基础,可以跳过,无须浪费时间为新建报表起点击这里,在页面上拖双击可修改显示内容(3) iReport 各部分简单说明运行效果页头域数据域,需要迭代的数据放在这里列脚域页脚域这个页脚,只在最后一图形,图片放在这个域里·Title:每个报表一般会有一个名字,比如×××销售报表,title就是搁置这个名称的最好地方了,当然你也可以根据需要搁置在合适的地方。
JasperReport报表开发说明(深入浅出)
1.报表制作流程实例:我们实现一个简单的JasperReports示例,展现其基本的开发、使用流程。
Jasper Studio是基于Eclipse的报表设计工具(不熟悉Eclipse的看官先去熟悉一下基本知识吧),默认工作区设置为当前用户主目录下的JaspersoftWorkspace文件夹,并且不可更改。
首先,我们创建一个报表工程,本例中命名为DemoProject,然后创建一张新的报表(File --> New–->Jasper Report),就会出现类似下图所示的窗口让我们选择一个模板。
此例我们选Coffee模板,然后点Next。
在接下来的页面里,我们给报表模板起个名字(Demo1.jrxml)并放在DemoProject的根目录下,然后点Next,于是进入了数据源选择界面:数据源是填充报表的关键,我们必须制定一个数据适配器(Data Adapter),此时我们有三种选择:1、选择“OneEmpty Record - Empty rows”,这样我们就可以专注于报表的设计,而暂时不指定数据源,创建完报表之后,我们随时可以制定别的数据源。
2、选择“SampleDB - Database JBDC Connection”,这是JaspersoftStudio安装时提供的一个示例数据库。
3、点击“New”按钮创建一个新的数据源。
这正是本例要采用的方式,我们将创建一个连接到本机MySql数据库的world的数据源。
首先点击“New”,在弹出的向导页中选择“Database JDBC Connection”,然后点“Next”弹出下图所示的页面:配置好基本的数据库连接信息,点击“Test”测试通过之后,一个数据源就配置好了,我们点击“Finish”结束配置。
初次配置MySql数据源需要在Driver Classpath页面指定MySql驱动包的路径:配置并选择数据适配器之后,我们需要指定数据查询的语句,该语句查询出的字段将直接用于报表中的数据字段。
jasperreport初级教程之填充报表
jasperreport初级教程之填充报表任何报告工具的主要目的是为了生产出高品质的文档。
举报填充过程有助于报告工具通过操纵数据集来实现这一目标。
需要报表填充过程的主要输入是:∙报表模板:这是实际的JasperReport文件∙报告参数:这些所传递的报表填充时间给引擎基本上都是命名的值。
我们将在报表参数章节讨论。
∙数据源:我们可以从一系列像一个SQL查询,XML文件,CSV文件,一个HQL(Hibernate查询语言)查询,Java Beans的集合等数据源的填补Jasper这个文件将详细讨论在报表数据源的篇章。
这个过程产生的输出。
jrprint是一个文档随时查看,打印或导出为其他格式。
外观类net.sf.jasperreports.engine.JasperFillManager通常用于填充一个报表模板与数据。
这个类有各种fillReportXXX()方法,填补报表模板(模板可以位于磁盘上,从输入流采集,或直接提供的内存)。
主要有两类在此外观类fillReportXXX()方法:1.第一种类型,接收java.sql.Connection对象作为第三个参数。
大多数情况下报表都充满了从关系数据库中的数据。
这是通过:o通过JDBC连接到数据库。
o包括报表模板中的SQL查询。
o JasperReports引擎使用传入的连接并执行SQL查询。
o因此,一个报表数据源产生填充的报告。
2.第二类,收到net.sf.jasperreports.engine.JRDataSource对象,当提供其他形式的数据来填补。
填充报告模板让我们来写一个报表模板。
在JRXML文件(C:\tools\jasperreports-5.0.1\test\jasper_report_template.jrxml)的内容如下:<band height="23"><staticText><reportElement mode="Opaque"x="0"y="3"width="535"height="15"backcolor="#70A9A9"/><box><bottomPen lineWidth="1.0"lineColor="#CCCCCC"/> </box><textElement/><text><![CDATA[]]></text></staticText><staticText><reportElement x="414"y="3"width="121"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font isBold="true"/></textElement><text><![CDATA[Country]]></text></staticText><staticText><reportElement x="0"y="3"width="136"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font isBold="true"/></textElement><text><![CDATA[Name]]></text></staticText></band></columnHeader><detail><band height="16"><staticText><reportElement mode="Opaque"x="0"y="0"width="535"height="14"backcolor="#E5ECF9"/><box><bottomPen lineWidth="0.25"lineColor="#CCCCCC"/> </box><textElement/><text><![CDATA[]]></text></staticText><textField><reportElement x="414"y="0"width="121"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font size="9"/></textElement><textFieldExpression class="ng.String"><![CDATA[$F{country}]]></textFieldExpression></textField><textField><reportElement x="0"y="0"width="136"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"/><textFieldExpression class="ng.String"><![CDATA[$F{name}]]></textFieldExpression></textField></band></detail></jasperReport>接下来,让我们通过Java数据对象(Java bean)集合,到Jasper报表引擎,填补了这一编译报告。
JasperReport4.0.1使用手册
JasperReport4.0.1 用户手册目录1.介绍 (4)2.准备工作 (4)2.1环境要求 (4)2.2下载 (5)3.报表生命周期 (5)4.报表结构 (5)5.Report Datasource (6)5.1 Database JDBC connection (6)5.2 JavaBeans set datasource (9)5.3 File CSV datasource (11)5.4 Microsoft Excel(xls)data source (12)6.报表元素(Report Elements) (12)6.1 Static Texts (12)6.2 Text Field (13)6.3 Crosstab(交叉报表) (13)6.3.1 基本设置 (13)6.3.2 设置报表的语言 (15)6.3.3 对Row Groups中的变量的操作 (16)6.3.3 对Column Groups中的变量的操作 (17)6.3.4 对Measures中的变量的操作 (17)6.3.5 预览报表效果 (18)6.4 List (18)6.4.1 设置List引用的dataset,为List所引用的参数赋值 (18)6.4.2 设置List中内容的扩展方向 (18)6.4.3 设置List中内容的扩展个数 (19)6.4.4 示例中的报表的设计以及运行效果如下图(截取部分) (19)6.5 Table(表格) (20)6.5.1 Table如何获得连接 (20)6.5.2 如何向Table中的参数传值 (20)6.5.3 如何删除或添加一列 (20)6.6 Break(分页符) (20)6.7 Chart(图表) (20)6.8 Subreport (22)6.8.1 为子报表的参数传值 (22)6.8.2 子报表向主报表返回值 (23)7.其它内容 (23)7.1 分组报表 (23)7.2组件对齐技巧 (24)7.3 Style (24)7.4 Scriptlet (25)8、使用中出现的问题以及解决办法 (26)用户手册中demo 需要导入数据源,导入方法:1.介绍iReport 是一个能够创建复杂报表的开源项目,它是用Java 语言编写的,是目前全球较为流行的开源报表设计器。
JasperReport详解_(1)
报表设计基础及JasperReort,JFreeChart简明教程摘要本文先从通用的角度定义了与报表相关的各种概念。
然后介绍了怎么应用JasperReport和Ireport设计报表,最后介绍了怎么使用JfreeChart生成图形报表。
文章中出现的很多概念和定义都出自作者自己的思考,没有通用性,在阅读时请不必深究它的准确性。
1、什么是报表,什么是报表应用程序1.1 什么是报表报表是数据统计结果的呈现。
常见的报表格式有表格、数据立方体(多维表)、曲线图、直方图、饼图等等,其中以表格最为常见。
总结各种报表的共同特征,可以这样来定义报表的结构。
一般来说,Report = Title + Page(s) + Report FooterPages(s)表示一个报表可能有一页或多页Page = PageHeader + Content + PageFooterContent则代表真正的数据,它一般由若干列和若干行组成。
Content = ColumnHeader + Row(s) + ColumnFooter一个报表的结构可以表示为下图所示的树形:这棵树中的所有叶结点,就构成了报表的实体。
一个叶结点一般称作一个Band,从上到下排列,一个Report的组成如下图所示:下图是一个报表的例子。
它有3页。
1.2 计算机上的报表与报表应用程序可以利用计算机处理数据和界面设计的功能来生成、展示报表。
计算机上的报表的主要特点是动态化。
已经有各种各样的计算机报表设计工具,它们一般提供格式设计和数据填充等功能。
广义地讲,EXCEL、WORD、甚至写字板都可以算作报表设计工具,但是它们没有定义专门的报表结构,也无法实现报表格式和报表数据的动态决定,无法实现计算机报表的“动态化”特性,也就是说不能用它来开发“报表应用程序”,所以它们一般不能视为报表设计工具。
而所谓报表应用程序,指的是能够在运行时动态地决定报表格式和报表数据的应用程序,它必须要实现数据格式和数据内容之间的分离,也就是报表和数据源之间的分离。
JasperReports入门教程(三):Paramters,Fields和Detail基。。。
JasperReports⼊门教程(三):Paramters,Fields和Detail基。
JasperReports⼊门教程(三):Paramter,Field和Detail基本组件介绍前⾔前两篇博客带领⼤家进⾏了⼊门,做出了第⼀个例⼦。
也解决了中⽂打印的问题。
⼤家跟着例⼦也做出了demo,但是⼤家可能还是⽐较懵的。
肯定有很多疑问,想这些组件都是怎么使⽤,下⾯我们就从最基本的Paramters,Fields和Detail来给⼤家讲解下⽤法。
ParamtersParamters是⼀张报表中全局的属性,初始⾃带了⼀些属性,也可以⾃定义属性。
⼤家可以理解为存放⼀个报表的表头数据Paramter的属性可以是任何类型,String,Long,Double,List等等Paramter可以⽤在报表的任何区域,⼀般⽤在报表的Title,Page Header,Page Footer区域1.Paramters的创建:在左侧的Outline框,在Paramters上右键 Create Paramter 就可以创建⼀个新的Paramter,在右侧可以设置名称和类型。
使⽤时直接拖拽到相应的区域即可。
如下图所⽰2.在Java程序中可以通过给对应的Paramter赋值,在打印时就可以输出你想要的结果。
代码如下所⽰//给Paramter赋值HashMap<String, Object> parameters = new HashMap<String, Object>();parameters.put("name", "⼩明");//这⾥的key要和报表中的Paramter的name对应parameters.put("age", "18");//中间代码省略//核⼼代码,把Paramters传⼊JasperReport提供的⽅法,并返回JasperPrint 对象JasperPrint jasperPrint = JasperFillManager.fillReport(jasperStream, parameters, dataSource);FieldsFields是报表中数据集合中的字段属性,只能⾃定义Field字段。
jasperreport使用
Jasperreport基本介绍Jasperreport与Ireport介绍Jasperreport是报表打印工具,支持pdf、csv多种格式的报表打印。
JasperReport是一个开源的工具包,将JasperReport包加入到项目的classpath中即可开始使用JasperReport包了,从java程序中通过调用包中的类对jrxml文件进行操作,可以完成报表的编译、显示、输出等工作;Jasperreport的报表生成过程,如下图。
如上图所示。
报表模板有两种制作方式:1)利用ireport图形编辑工具,iReport是报表编辑图形工具,编辑完成后输出jrxml文件(XML格式),生成jasper文件(以.jasper结尾);2)直接利用java代码编译生成jasper文件(以.jasper结尾)。
最终要使用的是编译后的*.jasper文件。
Jasperreport支持多种数据源,包括xml、数据库、JavaBean等多种数据源。
Jasperreport基本类net.sf.jasperreports.engine.JasperCompileManager类。
使用这个类的几个静态方法即可完成对报表的编译工作(具体参见api文档)编译完成后可以JasperCompileManager有两种处理方式:1> 返回一个JasperReport对象2> 在.jrxml文件所在的目录生成一个.jasper文件这两种方式是由程序员自己选择的。
不过我比较倾向使用.jasper文件,毕竟报表的结构不是每天都在改动,所以每次重新编译报表并不是很划算。
●net.sf.jasperreports.engine.JasperFillManager类这个类的作用是用数据填充报表。
它可以使用JasperReport对象也可以使用。
jasper文件做为报表模板。
它同样有2中处理方式:1> 返回一个JsaperPrint对象。
JasperReports_3.5_ch03
3创建第一份报表本章我们将创建、编译、预览我们的第一份报表。
通过本章学习,我们将能够:•创建一份简单的JRXML报表模板•用JasperReports自定义ANT目标来预览报表模板•编译JRXML文件生成Jasper二进制报表模板•编写从JasperReports模板生成报表的代码•通过JaspreReports提供的工具浏览生成的JasperReports本地格式报表•生成能够显示在web浏览器中的报表•识别与报表中各片段相对应的JRXML元素创建JRXML报表模板创建报表的第一步是创建一份JRXML模板,我们在第1章中介绍了,JasperReports的JRXML模板是标准的XML文件。
但是,依照惯例,其扩展名为.jrxml,称为JRXML文件或JRXML模板。
JRXML模板可以手工编写,也可以使用可视化报表模板生成工具。
时下,最流行的JRXML报表模板生成工具是iReport。
我们将在第10章中介绍它。
所有的JRXML文件都包含一个<jasperReport>根元素,它又包含若干子元素。
所有的子元素都是可选的。
因为而我们在这一章里主要是感受一下怎样设计报表,所以略掉了大多数<jasperReport>子元素,而只用了一个名为<detail>的子元素。
我们的第一份报表将显示一个静态的字符串,其JRXML如下:<?xml version="1.0"?><jasperReportxmlns="/jasperreports"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/jasperreports http://jasperreports./xsd/jasperreport.xsd"name="FirstReport"><detail><band height="20"><staticText><reportElement x="20" y="0" width="200" height="20"/><text><![CDATA[If you don't see this, it didn't work]]></text></staticText></band></detail></jasperReport>在这个JRXML文件的元素中,有些我们在前面的章节中还没有接触过。
JasperReport框架使用教程(附带常见空白页问题说明)
JasperReport框架使⽤教程(附带常见空⽩页问题说明)概述与安装使⽤1. PDF报表概述概述在企业级应⽤开发中,报表⽣成、报表打印下载是其重要的⼀个环节。
在之前的课程中我们已经学习了报表中⽐较重要的⼀种:Excel报表。
其实除了Excel报表之外,PDF报表也有⼴泛的应⽤场景,例如货运详情,货运单等。
常见PDF报表的制作⽅式⽬前世⾯上⽐较流⾏的制作PDF报表的⼯具如下:1. iText PDF:iText是著名的开放项⽬,是⽤于⽣成PDF⽂档的⼀个java类库。
通过iText不仅可以⽣成PDF或rtf的⽂档,⽽且可以将XML、Html⽂件转化为PDF⽂件。
2. Openoffice:openoffice是开源软件且能在windows和linux平台下运⾏,可以灵活的将word或者Excel转化为PDF⽂档。
3. Jasper Report:是⼀个强⼤、灵活的报表⽣成⼯具,能够展⽰丰富的页⾯内容,并将之转换成PDFJasperReport框架的介绍JasperReport是⼀个强⼤、灵活的报表⽣成⼯具,能够展⽰丰富的页⾯内容,并将之转换成PDF,HTML,或者XML格式。
该库完全由Java 写成,可以⽤于在各种Java应⽤程序,包括J2EE,Web应⽤程序中⽣成动态内容。
只需要将JasperReport引⼊⼯程中即可完成PDF报表的编译、显⽰、输出等⼯作。
在开源的JAVA报表⼯具中,JASPER Report发展是⽐较好的,⽐⼀些商业的报表引擎做得还好,如⽀持了⼗字交叉报表、统计报表、图形报表,⽀持多种报表格式的输出,如PDF、RTF、XML、CSV、XHTML、TEXT、DOCX以及OpenOffice。
数据源⽀持更多,常⽤ JDBC SQL查询、XML⽂件、CSV⽂件、HQL(Hibernate查询),HBase,JAVA集合等。
还允许你义⾃⼰的数据源,通过JASPER⽂件及数据源,JASPER就能⽣成最终⽤户想要的⽂档格式。
iReport使用教程
一、iReport简介说到iReport不得不先介绍Jasperreport,Jasperreport是一个报表制作程序,用户需要按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式文件。
它支持输出的文件格式包括PDF,HTML,XML,XLS,CVS等等。
而iReport就是一个制作Jasperreport的XML文件的可视化开发工具。
只是一个UI。
二、安装说明2.1 基本安装现在最新的版本是iReport 0.5.1 (Aug 27, 2005).下载后解压然后在根目录双击iReport.bat就可以用了,但是为了可以使用external ttf font还必须要把 iReport-0.5.1/fonts 加到环境变量里面去。
2.2 了解制作报表用的包下载后到到 iReport-0.5.1/lib 里看看,你就可以发现iReport的真面目了。
(1) jasperreports-1.0.1.jarjasperreports 是iReport的核心内容。
它是一个强力的报表产生工具,他有能力描述丰富内容到屏幕上、到打印机或到PDF, HTML, XLS, CSV和XML文件。
它完全用Java编写的,并可在各种Java应用(包括J2EE或WEB应用)中用来产生动态内容。
它的主要目的是以一种简单而灵活的方式来帮助创建导向的页面。
JasperReports组织根据在一个XML文件中定义的报表设计通过JDBC来接受来自一个关系数据库中的数据. 为了以数据来填充报表,报表设计必须首先被编译。
jasperreports的官方网站:/(2) itext-1.3.1.jariText是一个开放源码的Java类库,是用来生成PDF文件的。
iText的官方网站:如果要在生成的pdf文件显示中文等亚洲字符,还必须下载itext的亚洲字符包。
tTextAsian的官方下载地址:/downloads/iTextAsian.jar(3) jfreechart-1.0.0-rc1.jarjfreechart是一款免费的、功能强大的统计图生成工具,可以直接生成PNG,JPG 等各式的文件。
JasperReport学习必备手册
JasperReport学习必备手册(小弟第一次发帖,好像用小字体才好看些,大家将就一下)这是我学习JasperReport的一点经验,欢迎大家指正、赐教,我只是起个砖块的作用,大家就接着抛玉吧,希望最后真的能累成一个必备手册,呵呵。
假设大家已经对JasperReport有一定的了解(至少知道大概的开发流程),这里就不赘述JasperReport的好处、设计、表达式的定义等JasperReport 自带文档里有的东西了。
可能因为我是java新手,所以遇到的问题特别多,下面仅列一些,并附上我的解决方法:Jsp生成不了 PDF的问题生成 HTML 时 JRHtmlExporterParameter.lMAGES_MAP 的问题中文显示的问题图片显示的实现方法(JFreeChart)我的通用.jasper生成方法我的项目的实现Jsp生成不了PDF的问题问题描述:运行自带的web(webapp目录下)例子时(我使用的服务器是TomCat),用Servlet生成PDF完全没问题,而JSP方式却报getOutputStream () has already been called forthis respons的令昔,看JSP源码发现和Servlet差不多。
问题原因:Tomcat首先执行.jsp文件开始的Java代码,然后准备session, out等变量。
而输出PDF的代码出现在.jsp文件开始的<% ... %>段中,这样HttpServerletResponse的getOutputStream()方法已被调用。
在JSP规范中定义此方法只能被调用一次,这样当Tomcat准备out变量时必然会出错。
所以基于TomCat的服务器都会出错,如Jboss?un ONE AppServer解决方法:很简单,按照JSP/Servlet规范定义输出非文本内容,如图片、声音等应该使用Servlet而不是JSP。
在Servlet中输出流完全由应用程序按需打开/关闭。
Java开源报表JasperReport、iReport4.5.1使用详解(四)
③进行报表设计,排列好字段。这步骤பைடு நூலகம்前面的几节有详细的介绍。
四、和Struts2
整合
我们的iReport的数据源,这里取一个List集合,这个List集合,我们从Struts2中获取。
①导入所需jar包
前面几节有介绍,再次不再赘述,需要注意的是,导入Jar包的时候要避免冲突
三、设置数据源
①选择JavaBean Datasource
输入Class name 然后单击 Read attributes②选择需要的字段,Add selected field 即可。
在上一步中,有可能出现Read attributes,读取不出来属性的情况,一般请检查下面两点:a).Class 是不是选对了
extends后面需要添加jasperreports-default
<package name="test" namespace="/report" extends="struts-default,jasperreports-default">
②配置Struts2配置文件
<package name="test" namespace="/report" extends="struts-default,jasperreports-default"> <action name="toHtml" class="totalViewAction" method="listTotalView"> <result name="success" type="jasper"> <param name="location">/web/report/groupScore/countView.jasper</param> <param name="dataSource">listTotaltView</param> <param name="format">HTML</param> </result> <result name="error">/error.jsp </result> <result name="input"> /error.jsp </result> </action> <action name="toPdf" class="totalViewAction" method="listTotalView"> <result name="success" type="jasper"> <param name="location">/web/report/groupScore/countView.jasper</param> <param name="dataSource">listTotaltView</param> <param name="format">PDF</param> </result> <result name="error"> /error.jsp </result> </action> <action name="toXml" class="totalViewAction" method="listTotalView"> <result name="success" type="jasper"> <param name="location">/web/report/groupScore/countView.jasper</param> <param name="dataSource">listTotaltView</param> <param name="format">XML</param> </result> <result name="error">/error.jsp </result> </action> <action name="toXls" class="totalViewAction" method="listTotalView"> <result name="success" type="jasper"> <param name="location">/web/report/groupScore/countView.jasper</param> <param name="dataSource">listTotaltView</param> <param name="format">XLS</param> </result> <result name="error"> /error.jsp </result> </action> </package>
jasperreports中文入门教程之编译报表设计
jasperreports中文入门教程之编译报表设计我们在前面的章节中产生的JasperReport模板(JRXML文件)。
这个文件不能直接用于生成报告。
它必须被编译成JasperReport的“本地二进制"格式,称为Jasperfile。
在编制我们把JasperDesign对象转换成JasperReport的对象:接口net.sf.jasperreports.engine.design.JRCompiler编译过程中起着核心的一部分。
这个接口有根据用于报表表达式语言,它可以只要编译器可以实现在运行时计算它被用Java编写的,Groovy,JavaScript的或任何其他脚本语言的几个实现。
我们可以通过以下两种方式编译JRXML文件:1.提供编程编译。
2.编译通过ANT任务。
JRXML提供编程编译JasperReports的API提供了一个门面类net.sf.jasperreports.engine.JasperCompileManager用于编译JasperReport。
这个类包含几个公共静态方法编制的报告模板。
模板的源可以从文件,输入流,内存中的对象。
该jrxml文件(jasper_report_template.jrxml)的内容如下。
它被保存在目录C:\tools\jasperreports-5.0.1\test:<queryString><![CDATA[]]></queryString><field name="country"class="ng.String"><fieldDescription><![CDATA[country]]></fieldDescription> </field><field name="name"class="ng.String"><fieldDescription><![CDATA[name]]></fieldDescription> </field><columnHeader><band height="23"><staticText><reportElement mode="Opaque"x="0"y="3"width="535"height="15"backcolor="#70A9A9"/><box><bottomPen lineWidth="1.0"lineColor="#CCCCCC"/> </box><textElement/><text><![CDATA[]]></text></staticText><staticText><reportElement x="414"y="3"width="121"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font isBold="true"/></textElement><text><![CDATA[Country]]></text></staticText><staticText><reportElement x="0"y="3"width="136"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font isBold="true"/></textElement><text><![CDATA[Name]]></text></staticText></band></columnHeader><detail><band height="16"><staticText><reportElement mode="Opaque"x="0"y="0"width="535"height="14"backcolor="#E5ECF9"/><box><bottomPen lineWidth="0.25"lineColor="#CCCCCC"/> </box><textElement/><text><![CDATA[]]></text></staticText><textField><reportElement x="414"y="0"width="121"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font size="9"/></textElement><textFieldExpression class="ng.String"><![CDATA[$F{country}]]></textFieldExpression></textField><textField><reportElement x="0"y="0"width="136"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"/><textFieldExpression class="ng.String"><![CDATA[$F{name}]]></textFieldExpression></textField></band></detail></jasperReport>下面的代码演示了上述jasper_report_template.jrxml文件的编译。
jasperreport使用介绍(收藏)--大家一起来学JAVA
jasperreport使用介绍(收藏)--大家一起来学JAVA1 简介JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。
最重要的是它是开源的,这给我们带来很大方便,但是文档却要钱,让人不爽。
不过人总要生存,再说,做这么一个好东西,用户总不能一点代价也开源工程—IReport,这是一个的辅助工具,因为JasperReport仅提供了可使用的类库而未提供更好的开发工具,IReport的出现解决了这一难题。
它们配合使用将会更大程度的提高效率。
该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。
它的主要目的是辅助生成面向页面的(),准备付诸打印的文档。
JasperReport借由定义于XML文档中的report design进行数据组织。
这些数据可能来自不同的数据源,包括关系型数据库,,java对象数组。
通过实现简单的接口,用户可以将report library插入到订制好的数据源中,在以后我们将提到有关内容。
其实这是一份JasperReport Ultimate Guide的简单翻译以及我的理解和例子。
在最后,我将描述一个我正在做的工程,将其中用到的相关信息贡献出来。
我这么做是因为当我在学这个类库的时候苦于很少有相关的中文文档,诱惑语焉不详,希望其他人不再受苦。
这个文档将分几次贴出来,与原文档的章节相对应。
这份文档的Word形EMail是****************有什么意见或想法请与我联系。
闲言少叙,进入正题。
2 API概览上图为一个生成报表并打印(导出)的全过程。
我将会把涉及到的重要的类进行一一说明。
Class net.sf.jasper.engine.design.JasperDesign这是一个未经加工的报表实例,供JasperReport Library使用。
这个类可以在JasperReport类库内置的XML解析器对XML report design进行解析处理之后得到。
JasperReport报表使用方法
public List<Map> getResultList(List<DrivingHistoryDataVO> dataList) {
List<Map> returnList = new ArrayList<Map>();
// 保证记录顺序不变,使用TreeMap
第四部执行编译成jasper文件
1、首先,在用iReport设计报表时将要显示中文数据的地方的属性设置如下:
Font name: 宋体 (中文字体)
PDF font name: STSong-Light
PDF Encoding: UniGB-UCS2-H(Chinese Siplified)
jrxml编译成jasper文件的步骤:
第一步:建立好java实体类(pojo)
第二步:将建立好的java类达成jar包
(此处一定要记得配置classpath读取jar文件)
第三步:设置iRport数据源(javaBeanDataSource),输入完整的全类名(包括包名)
先定义一个功能需求,然后我们展开说明。一个车辆行驶数据分析系统中需要实时获取行驶数据,这需要车载设备来实现。数据上传存储在Web端的数据库中,我们需要从数据库中获取数据来显示内容。
使用JavaBean作为数据源,首先我们要扩展JasperReport的数据源。实现方法很简单,我们定义一个类去实现net.sf.jasperreports.engine.JRDataSource接口即可,覆盖其中的方法。下面给出一个示例。
而问题又出现了,如果这两个字段自动换行了,那么必然把一行上的其他元素都给撑大了,那么还需要对其他元素进行设置。选中其他的所有元素,在属性面板的Stretch Type中选择Relative to Tallest Object就可以自适应到最高换行的元素了,显示效果就正常了。
收藏JasperReport初级教程(2.0.3)图文详解
1下载iReportiReport是一个可视化的报表模板设计工具,使用此工具能方便地对报表进行设计。
在iReport中已经包含了jasperreports在运行时需要的jar文件,在项目中的lib目录中包含Jasperreports-***.jar即可,其中***为版本号,比如2.0.3。
下载地址:/project/showfiles.php?group_id= 64348,此文档编写时版本为2.0.3,如图:点击download出现以下界面:可以看到提供了多种下载包,其中:ØiReport-2.0.3-src.zip:为iReport的源代码ØiReport-2.0.3.tar.gz:为.tar.gz格式,一般用于Linux、Unix等非wi ndows系统ØiReport-2.0.3-windows.installer.exe:为exe格式,一般用于windo ws系统ØiReport-2.0.3.zip:为zip格式,可以用于各类操作系统本文使用window版本为例,因此下载iReport-2.0.3-windows.inst aller.exe即可。
2安装iReport安装iReport需要先设置JDK环境,2.0.X版本要求JDK1.5环境(另参考文档)。
如果是windows系统,直接双击安装图标即可。
(如果是下载的ZIP文档,则将其解压到指定的目录,还需运行bin/startu p.bat)。
如果是其他系统,比如Linux,Unix等,解压下载的安装文件(如下载的是tar.gz格式,使用tar xvfz iReport-2.0.3.tar.gz进行解压,如下载的zip格式,使用zip命令解压),然后运行bin/startup.sh即可。
以下以在windows上安装为例:A.欢迎界面,点击“N ext >”继续B.阅读license内容,点击“I A gree”继续C.选择安装组件,点击“N ext >”继续D.指定安装路径,点击“N ext >”继续E.指定程序组名称,点击“I nstall”即可F.等待安装过程G.安装结束,点击“F inish”完成在桌面上会出现如此图标:。
jasperReport使用说明
一、iReport软件安装步骤。
(默认安装即可)1、在安装iReport之前,先把jdk的环境变量配置好!否则iReport不能用,这是因为iReport是用纯java写的。
2、开始安装,双击iReport-4.0.2-windows-installer.exe3、点击next4、点击I Agree5、选中iReport,点击Next6、可以更改路径,点击Next7、剩下步骤,按照默认安装,安装完成!二、工具使用,新建模板、调整样式。
设计一个最简单的报表1、新建一个A4竖行的jrxml模版,如下图,点击Open this Template2、选择保存路径,点击下一步3、点击完成进入如下图,就可以编辑报表了4、开始编辑报表,如给报表添加一个标题“报表的标题”,在组件面板里将Static T ext 用鼠标直接拖到Title区域中将标题组件拖到合适的大小,也可以编辑字体等。
但是一定要在Title 区域。
5、用同样的办法,可以将需要的组件拖到报表模版中。
其中常用的StaticText是静态的,TextField组件是动态的。
6、如下图,是一个做好的报表。
其中$F{region_name},$F{ip},$F{volume}和javaBean的属性名字应一致,包括大小写,否则会找不到这个字段。
另外$V{index}是报表中自定义变量。
其中,可以查看属性配置,例如region_name,又如,自增变量index,如下还可以进行编辑表达式,7、最终编辑的ireport文件,就是一个xml文件8、预览9、JasperCompier再把这个xml文件编译成jasper文件,进行加载。
用jasper的jar类库把数据以报表的形式展示出来。
也可以导出成html、excel、cvs、pdf等各种格式。
10、导出pdf,需要设置属性和,否则中文会乱码。
11、也可以手工在iReport中编译成.jasper文件,然后在程序中加载.jasper文件。
jasperreport%2Bireport开发java报表入门级教程
特别声明:本文版权为原文作者李克喜所有。
1使用iReport制作报表的详细过程(Windows环境下)1.1前言在网络上可以搜索到很多使用iReport和Jasperreport配合实现各种报表任务的文章,但是我觉得很少有一篇(几乎没有)做一个比较详细的介绍如何使用iReport制作报表的全过程,我所看过的文章的基本思想是覆盖面广,很多内容都是提及即过,并不是开发人员都有时间为每个实践花费时间自己实现,如果能有更详细的资料,那岂不是一件乐事。
出于这个念头促使我写这篇文章,希望能对那些使用iReport和Jasperreport朋友有所帮助,特别是需要亲身去实现报表的朋友,希望能给你们带来一点帮助。
本文不是对iReport的每个细节进行介绍,关于iReport的每个细节可以参考iReport网站的资料,但是可能得花费一些费用。
一般用户没有必要付出这些费用,因为我们关心的是如何制作我们需要的报表,而不是去扩展iReport,比如制作iReport的插件。
1.2准备1.2.1下载JDK1.2.2下载iReport1.2.3准备数据库1.2.4启动MySql服务确定Mysql使用的的字符集是重要的问题,特别是对需要中文报表的朋友,应该特别注意这个问题。
1.2.5确定商务逻辑也就是希望完成什么样的报表任务。
需要实现的报表的详细描述,这是实现报表的业务条件,否则所有的任务绝大部分没有意义。
本文使用一个Bug记录表为例,本文的例子是制作一个根据项目和项目中的模块分组的Bug量统计。
1.3开始配置基本信息1.3.1配置界面使用的语言和报表输出路径第一次进入系统是英文环境,可以通过【Tools】-【Options】开启配置iReport 系统的基本信息对话框。
在“Language”选项里面选择你需要的界面语言,比如“中文-中国”。
点击【Apply】按钮,系统既把整个界面中文化。
在配置iReport系统的基本信息对话框中选择【编译】Label,之后决定你的报表输出路径,可以把“编译在报表数据文件夹”选择打勾,这样报表的jrxml 文件和jasper文件就放置同一文件夹。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JasperReports报表生成的基本步骤:1.扩展名为.jrxml的文件为标准的xml文件,该文件定义了报表的格式和数据构成。
可以通过jasperReports的“黄金搭档”iReport以可视化的方式生成并编辑这个文件。
2.jrxml文件经过JasperReports API 编译后将生成扩展名为.jasper的二进制文件。
3.可以调用JasperReports API针对jasper文件进行数据和参数的填充,生成扩展名为.jrprint的文件。
4.调用JasperReports API可以将jrprint文件最终导出成PDF、Excel、Html等各种格式的文件。
下面将采用iReport + JasperReports 生成如下图的PDF格式报表,表格中的数据来源于数据库,是在固定格式报表基础上,由JasperReport填充得到的。
整个报表的生成过程需要两个步骤:1.使用iReport生成规定报表格式和数据构成的jrxml文件。
2.调用JasperReports API 编译、填充并导出固定格式的报表。
一、用iReport生成报表文件(.jrxml)开源工具iReport用于定义报表的格式,可以从其官方网站下载/cap3.html本应用所使用的是iReport-1.2.2-windows-installer.exe 安装程序,启动后,按照向导即可安装(要确认系统中装有1.4版本以上JDK)。
下面的操作大致分为12个步骤:步骤1:安装成功后启动该程序,将显示如下画面,选择菜单“File->New Document”新建报表文档,可在弹出的对话框选择报表的大小、版式等。
步骤2:按照默认版式创建报表,选择菜单“Data->Connections/Datasources”指定数据库连接或数据源,在弹出的对话框中单击“New”,并在弹出的对话框中指定数据库的连接参数(驱动类、URL、用户名和密码等)iReport通过JDBC 连接数据库,要确认相应数据库的驱动类置于iReport安装路径的lib文件夹下。
步骤3:选择菜单“Data->Report Query”在弹出的对话框中输入SQL语句:select id, name, salary from emp,选中所有查询的字段后,单击“OK”。
该SQL语句查询的数据为将来报表中要显示的数据,除了用SQL语句,这里还支持HQL(Hibernate Query Language)等其他多种查询方式。
这样的操作将在报表的xml文件中生成如下定义:<queryString><![CDATA[select id, name, salary fromemp]]></queryString><field name="id" class="ng.Integer"/><field name="name" class="ng.String"/><field name="salary" class="ng.Double"/>其中元素定义了用于获取数据的查询语句,将来JasperReports将通过这样的方式查询数据。
元素定义了对应于查询结果的字段名称和类型,将来报表中可以使用$F{字段名称}获取并显示查询得到的数据。
步骤4:选择菜单“Format->Styles”用于指定报表元素将使用的样式,这里的Style类似于HTML中CSS样式,一个样式规定了字体、前景色、背景色等显示特征,样式创建后,可以将其施加于特定的报表元素。
为了便于维护,样式之间可以实现继承关系,子样式将拥有父样式的一切特征。
在弹出的对话框中单击“New”指定一个名为default的样式(通过Style name指定样式名称),指定其字体、颜色等特征。
步骤5:继续指定一些其他的样式,如用于表头字体的“灰底白字”的样式header,将这些样式的Parent style值指定为刚刚创建的default样式,即指定default 是所有样式的父样式,这样可以通过编辑default样式指定一些所有样式共同的特征。
步骤6:单击“Edit->Insert element...->Static Text”或使用工具栏的按钮,在报表页面中添加静态文本框,将这些文本框置于合适的位置并填入文字,作为表头,通过右边的Element properties 视图将这些文本框的Style(样式)置为方才创建的header。
步骤7:打开右边Library视图的Fields图标,可以看到id,name,salary三个标识,这三个标识对应在“步骤3”中创建的“查询字段”,用鼠标直接拖动这些字段到报表页面的适当位置,这样的操作将在报表xml文本中产生形如:<textFieldExpression class="ng.Integer"><![CDATA[$F{字段名称}]]></textFieldExpression>的文本。
其中$F{字段名称}表示该字段的查询值。
步骤8:在Library视图中单击右键,在弹出的快捷菜单中选择“Add...->Parameter”,用于创建参数,在弹出的对话框中指定参数的名称和数据类型。
步骤9:在Library视图的Parameter下可以看到刚刚建立的名为“Title”的参数,用鼠标拖到其到指定位置,并适用在步骤5中创建的title样式,此处为报表的标题。
这样的操作将在xml文件中产生如下内容:<textFieldExpression class="ng.String"><![CDATA[$P{Title}]]></ textFieldExpression>其中的$P{Title}对应Title参数的值,将来将通过JasperReports API 对“Title”参数赋值。
步骤10:选择菜单“File->Save”或单击工具栏按钮保存生成的xml文件,注意,文件的扩展名一般为jrxml,该文件定义的报表的格式及其数据构成。
步骤11:可以通过iReport的编译工具对生成的报表文件进行测试,单击工具栏的按钮编译报表文件,如果无误可单击工具栏的按钮将显示报表生成的样式,如果单击工具栏的按钮,iReport将会查询数据显示填充数据后的报表,注意:这里的报表的标题显示null是因为没有对报表的“Title”赋值,这里仅仅是通过iReport工具对生成的报表进行测试,下面将通过JasperReports API以编程的方式编译、填充并导出报表。
步骤12:为了是将来导出的PDF格式报表支持中文显示,可以手工的编辑iReport 生成的xml文件,在定义default样式的位置加入支持中文的PDF字体和编码设置:<stylename="default"isDefault="true"mode="Opaque"pdfFontName="STSong-Light"pdfEncoding="UniGB-UCS2-H"/>由于其他样式继承了该样式,从而自动拥有的支持中文的设置。
二、用JasperReports编译、填充,并导出报表可以从JasperReports的官方网站下/jaspersoft/opensource/business_intelligenc e/jasperreports/载JasperReports的发行包,本应用使用的版本是jasperreports-1.2.3,将其发行包中dist目录下的:jasperreports-1.2.3.jar以及lib目录下的如下jar 文件:poi-2.0-final-20040126.jarjdt-compiler-3.1.1.jaritext-1.3.1.jarcommons-beanutils-1.5.jarcommons-collections-2.1.jarcommons-digester-1.7.jarcommons-javaflow-20060411.jarcommons-loggin-1.0.2.jar复制到应用的类路径(CLASSPATH)下。
为了支持中文的PDF报表导出,还需要有iTextAsian.jar文件,该文件可以从/itext/iTextAsian.jar?download处下载。
注意,由于要连接数据库,还需要将数据库的JDBC驱动类包复制到类路径下。
编译报表(.jrxml -> .jasper),JasperCompileManager类的静态方法compileReportToFile用于编译报表文件第一个String参数为待编译的报表xml 文件,第二个String参数为编译后的文件名。
代码如下所示:public void testCompile() throws Exception {pileReportToFile("test.jrxml", "test.jasper");}填充报表(.jasper -> .jrprint),JasperFillMangager类的静态方法fillReportToFile用于实现对二进制报表文件的填充,该方法有三个参数:1.一个参数为String类型,表示待填充的文件名。
2.第二个参数为Map对象,存放用于填充报表参数(对应与报表中的$P{参数名称})的键值对,下面代码中map对象中存有键值对{Title=员工列表},则对应报表中的$P{Title}位置将被填充为“员工列表”。
3.第三个参数为数据库的连接(java.sql.Connection)对象,方法进行数据填充时需要用到该连接实现查询。
代码如下所示:public void testFill() throws Exception {Map map = new HashMap();map.put("Title", "员工列表");JasperFillManager.fillReportToFile("test.jasper", map, getConnection());}private Connection getConnection() throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root","root");return con;}导出报表,JRPdfExporter类用于将.jrprint格式的报表导出Pdf格式,类似的类还有:∙JRXlsExporter 导出成Excel文件格式∙JRHtmlExporter 导出成HTML文件格式∙JRCsvExporter 导出成Csv文件格式∙JRRtfExporter 导出成RTF文件格式∙JRTextExporter 导出成纯文本文件格式∙JRXmlExporter 导出成Xml文件格式JasperPrint类用于封装.jrprint文件数据。