Jaspersoft Studio 是基于 Eclipse 平台,所以它的主界面与 Eclipse 很相似:
鼠标右键->在新窗口中打开图片,可以查看大图哦 O(∩_∩)O~
1 Eclipse 的 全景视图
默认是打开 Jaspersoft Studio 的全景视图,可以凭自己的喜好,任意关闭或者拖拉里面的某个视图。
- 可以通过 Window -> Show View -> Other ,使用视图管理器,打开自己需要的视图:
- 重置全景视图的方式:Window -> Reset Perspective。
- 保存自定义的全景视图:Window -> Save Perspective As,然后取个名字并保存就可以啦O(∩_∩)O~
2 Jaspersoft Studio 全景视图组件
Jaspersoft Studio 主编辑器,有三个页签:
页签 | 说明 |
---|---|
Design | 可视化的报表设计区域。 |
Source | 报表对应的 JRXML 源代码。 |
Preview | 预览报表设计的效果。 |
主要有这些辅助视图:
视图 | 说明 |
---|---|
Repository Explorer | 维护报表的数据来源。 |
Project Explorer | 维护项目目录(当前的 workspace 下)。 |
Outline | 本张报表的结构,在预览模式下,为空。 |
Properties | 查看或者编辑某个报表元素的属性,可以打开多个元素的属性视图。 |
Problems | 展示问题或者错误。 |
Report state summary | 报表执行控制台、错误日志、统计信息。 |
3 Design 页签
我们一般在 Design 页签中设计报表。报表分为几个不同的水平分割部分,它们都被叫做栏(Band),可以把这些报表元素放在这些栏中。每一个栏根据它们的特性,可能会被重复多次。比如 页头(page header)在每一页都会被重复一次,而 detail band 中的内容,在每一条记录中都会被重复一次。
因为布局是可视化的,所以几乎可以忽略它们底层的源代码(JRXML)。
4 理解 "栏" 的概念
Design 页签预先定义了 9 个栏。
一个栏的宽度与页面的宽度相同(不包括左右外边距)。一般来说,栏 的高度会自动适配实际内容,但有的栏是固定的,比如 Column footer、page footer 以及最后一页的 last page footer 的栏。
下面是栏的类型:
Band 名称 | 说明 |
---|---|
Title | 标题。它只会出现一次,可以被打印在一个独立的页中做封面(这种情况下,这个栏的高度不会被计算到所有栏的总高度中)。 |
Page Header | 页头。它会出现在所有的被打印的页面中(如果 Tile 和 Summary 被打印在独立页中的话,那么就不会打印页头)。 |
Column Header | 每一页的数据顶部栏。一般放数据表中的列名。 |
Group Header | 分组的顶部栏。可选或者可以有多个。一般与 Group footer 配合使用。可以设置它的最小高度,但如果它的实际高度超过了这个最小值,那么它就会被打印到新页上,这一点一定要注意! |
Group Footer | 分组的底部栏。 |
Column Footer | 每一页的数据底部栏。 |
Page Footer | 页尾。 |
Last Page Footer | 最后一页的页尾。可以通过它设计一个与其他页的页尾与众不同的效果。如果它的高度被设置为 0,那么它将被完全忽略。 |
Summary | 摘要栏。一般放置汇总的统计数据。 |
Background | 背景。可以在这里加水印。它可以被设置的最大高度是页面的高度。 |
5 设置报表属性
在 Outline 视图中点击树的根节点,就可以在 Properties 视图中查看并设置报表的属性。
在报表的属性中,点击【Edit Page Format】可以改变报表的尺寸:
Jaspersoft Studio 的尺寸单位是像素。
下面列出可选的尺寸格式:
页面格式 | 尺寸(像素) | 页面格式 | 尺寸(像素) |
---|---|---|---|
Letter | 612x792 | B0 | 2836x4008 |
Note | 540x720 | B1 | 2004x2836 |
Legal | 612x1008 | B2 | 1418x2004 |
A0 | 2380x3368 | B3 | 1002x1418 |
A1 | 1684x3368 | B4 | 709x1002 |
A2 | 1190x1684 | B5 | 501x709 |
A3 | 842x1190 | ARCH_E | 2592x3456 |
A4 | 595x842 | ARCH_D | 1728x2593 |
A5 | 421x595 | ARCH_C | 1296x1728 |
A6 | 297x421 | ARCH_B | 864x1296 |
A7 | 210x297 | ARCH_A | 648x864 |
A8 | 148x210 | FLSA | 612x936 |
A9 | 105X148 | FLSE | 612x936 |
A10 | 74X105 | HALFLETTER | 396x612 |
11X17 | 792x1224 | LEDGER | 1224x792 |
5.1 设置列
创建一张新报表:File -> New -> Jasper Report,然后选择 Blank A4 模板:
给它取名为 example_A4.jrxml 。
现在设置数据源:在报表属性视图中(点击报表外侧空白处),点击 【Edit query,filter and sort options】:
打开数据源设置对话框:
- 选择 Sample DB。
- 编写 SQL 语句。
- 读取字段列表(执行 SQL 语句后)。
读取后的字段列表,就进入到了 Outline 视图中的 Fields 中咯:
现在我们把 SHIPNAME 拖拽到 Design 页签内,然后只保留 Detail 栏(可以选中其它栏,右击出现操作选项,再点击 delete 删除该栏):
Detail 栏高度设定为与 Field 高度相同,最终设计为:
预览效果:
默认情况下,一页中只会包含一列的 field 值。也可以配置多列的 field 值,这样排版起来会更好看。
打开当前报表的属性列表,在 Advanced 页签中把 Column Count 设置为 2:
现在再来看看效果:
是不是看起来比刚才好多咯 O(∩_∩)O~
5.2 高级设置
报表的属性列表包含了很多设置项,列表说明如下:
属性名 | 说明 |
---|---|
Report Name | 报表的逻辑名称,在 JRXML 中定义,在 JasperReports 库中使用到。 |
Title on a new page | title 栏会打印在一个独立页面中,即第一页仅有一个 title 栏,它仍然会被包含在总页数的统计中。 |
Summary on a new page | 与上面类似,summary 栏会打印在一个独立页面中。 |
Summary with page header and footer | summary 栏那一页也会打印出 page header 栏与 page footer 栏。 |
Floating column footer | column footer 栏会紧跟着 detail 栏或者 group footer 栏(如果有的话),这样设置会做成更紧凑的报表格式。 |
when no data type | 没有数据时的展示策略。 |
when no data type 有这些策略:
策略 | 说明 |
---|---|
No Pages | 默认值,不会有页面展示。 |
Blank Page | 展示一个空页面。 |
All Sections No Detail | 展示一个包含除了 detail 栏之外的所有栏的页面。 |
6 导出报表
可以导出各种格式,诸如常用的 PDF、XLS、HTML 等格式。
6.1 编译报表
Jaspersoft Studio 会首先编译 JRXML 源代码,生成 Jasper 文件;然后关联数据源。
6.2 预览以及导出
如果编译报表没有问题,就可以在 preview 页签中看到报表的预览效果。如果改变了数据源,那么报表会自动重新编译。
如果选择了一个新的预览格式,那么报表也会自动按照新的格式重新生成。
6.3 选择导出 PDF
如果选择导出 PDF,那么请注意报表模板的输出尺寸。一般的 PDF 支持的最大尺寸是 14400px * 14400px 。如果超过了这个尺寸,那这个报表可能太宽咯,会被 PDF 截断!