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对象。
- 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文件数据。