上章做了许多的准备工作,现在该说明用Jasperreport生成报表的工作流程了。
1. JRXML:报表填充模板,本质是一个XML.
2. Jasper:由JRXML模板编译生成的二进制文件,用于代码填充数据。
3. Jrprint:当用数据填充完Jasper后生成的文件,用于输出报表。
4. Exporter:决定要输出的报表为何种格式,报表输出的管理类。
5. Jasperreport可以输出多种格式的报表文件,常见的有Html,PDF,xls等
模板生成:JRXML
模板生成我们用Jaspersoft studio6.3.1进行可视化编写,这个软件代替了以前的IReport进行Jasperreport的模板生成。上一章我们已经安装好这个软件,现在将它打开。
有没发现跟Eclipse很像,没错这是基于Eclipse开发的开源软件,熟悉Eclipse的同学相信很快上手。
新建一个报表模板
选择一个页面布局的模板,这里选了一个空的A4纸大小的模板。
点击Next,命名模板。
点击Next,出现一个创建数据源的选项,在报表模板设计中,数据源可以是数据库,也可以是一个实体类集合(javaBean)。在这里我们点击New选择一个空的数据库,现阶段我们实现简单的功能还不用用到数据源,后面会详细介绍如何连接到数据库与实体类集合。
对数据源进行命名,点击Finish完成。
回到原来窗口,点击Finish,模板创建完毕.
完成之后,可以看到JRXML的结构图,工具栏与Eclipse开发Java程序一致
首先观察模板的Outline,有助于我们了解Jrxml设计的要素
- Styles:可以引用的布局风格
- Parameters:报表的参数,可由外部传入数据填充。
- Fields:域、字段,由上面关联的数据库或实体类所产生。
- Sort Fields:对字段进行排序筛选后的字段。
- Variables:变量,可以创建变量来进行一些数学计算。
- Scriptlets:报表模板实质是一个标签语言,故也可以使用脚本语言。
- 文档结构区:
- Title:标题是首先看到的区域,它只被创建一次,可被打印在单独的页面上。标题不可能超过报表的设计高度(不包括顶底部边距)。
- Page Header:页眉区域,高度一般不会在设计过程中发生改变,除非插入可调整大小的组件(如文本)。页眉出现在所有打印界面设定好的区域,如标题和摘要打印在另一个单独的页面则不会包括页眉区域。
- Column Header:表头被打印在第一个细节列表的开始位置,通常作为列表会被插入在这个区域。
- Detail:一般用于显示表格,可以包含多个表格。
- Column Footer:表尾区域出现在第一列的末尾,它的尺寸在运行时不可调整大小。
- Page Footer:页脚,出现在有页眉的页面,在运行时不可改变大小。
- Last Page Footer:如果你想让最后一页页脚不同于其他的页脚,就可以使用特殊的最后一页页脚乐队。如果区域高度为0会被完全忽略了,常用于最后一页。
- Summary:摘要区域允许你插入字段总数,方法,或者任何想在报告中包括的信息。
- No Data:无数据。
- Background:背景使您能够创建水印和类似的效果,如一个框架
在整个页面。它可以有一个最大高度等于页面高度。
查看JRXML源码
点击页面下方Desing旁边的Source可以看到JRXML的源码,从中可以看到源码就是由标签语言组成,一个个标签构成了模板的各个元素,可以从源码里对模板进行更加细致的设计。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.3.1.final using JasperReports Library version 6.3.1 -->
<!-- 2017-02-21T19:13:07 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="JasperSample" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="a2d74768-b0f9-4388-a9ab-d79179e0928f">
<property
//数据源的设置
name="com.jaspersoft.studio.data.defaultdataadapter" value="MyAdapter"/>
//如果是数据库,则可以设置查询语句
<queryString>
<![CDATA[]]>
</queryString>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch"/>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="61" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="125" splitType="Stretch"/>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37