说说 Jaspersoft Studio 的主界面和报表设计视图

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】:

打开数据源设置对话框:


  1. 选择 Sample DB。
  2. 编写 SQL 语句。
  3. 读取字段列表(执行 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 截断!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容