1、编写jrxml文件
-
1.1 新建项目
使用Jaspersoft Studio来创建一个项目,如图所示,新建一个项目,步骤: File -> New -> Project->JasperReportsProject - 1.2 新建一个Jasper Report模板
找到你新建的项目。步骤:项目右键 -> New -> Jasper Report,选择 Blank A4 (A4纸大小的模板),然后点击Next并对模板命名
如图所示,报表模板被垂直的分层,每一个部分都是一个Band,每一个Band的特点不同:
Title(标题): 只在整个报表的第一页的最上端显示。只在第一页显示,其他页面均不显示。
Page Header(页头): 在整个报表中每一页都会显示。在第一页中,出现的位置在 Title Band的下面。在除了第一页的其他页面中Page Header 的内容均在页面的最上端显示。
Page Footer(页脚): 在整个报表中每一页都会显示。显示在页面的最下端。一般用来显示页码。
Detail 1(详细): 报表内容,每一页都会显示。
Column Header(列头): Detail中打印的是一张表的话,这Column Header就是表中列的列头。
Column Footer(列脚): Detail中打印的是一张表的话,这Column Footer就是表中列的列脚。
Summary(统计): 表格的合计段,出现在整个报表的最后一页中,在Detail 1 Band后面。主要是用来做报表的合计显示。 -
1.3 通过拖拽右边控件到指定位置画出一个人员信息的报表模型
红框部分,上面是各种组件窗口,下面是组件的属性设置窗口。 -
1.3.1 JasperSoft studio常用控件的使用方法
1.Static Text: 静态文本控件,用于展示静态文本
2.Text Field: 动态文本控件,可从数据库,或者是Map集合,或者JavaBean中获取数据,然后填充到此组件中。
语法:$F{value}
3.Image: 图片控件,此控件有两个常用值,如下图所示:
在这里选择第一项可以动态加载工作空间中的图片资源。 -
1.4报表页面介绍
-
1.5子报表的使用
运行效果:
1.5.1首先制作一个子报表
在Jasper Studio中新建一个模板文件,这里我就叫做【subReport.jrxml】,将模板文件中除了Detail区域之外,其余的都删除,如下图示:
接着添加三个Text Field文本域组件到Detail区域里面,调整样式,修改Detail区域高度等于30px,这里修改高度是为了让子报表的高度根据数据的来自动扩展。
到这里,子报表就算已经制作完成了,当然你要增加样式,你可以根据实际需求改动,我这里只是告诉你如何制作父子报表。 -
1.5.2父报表中引用子报表
首先父报表中需要新增一个字段 - 此时会弹出一个窗口,让你选择子报表文件的路径。
- 选择成功之后,调整一下子报表的样式,最终样式如下所示。
- 设置子报表的数据源
设置子报表路径 - 设置子报表数据源
需要注意的是,数据源类型必须使用
【new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{subData})】方式包装起来。不要问为什么,就按照这样写就没问题,不然会报错。 - 到这里,我们的父子报表模板文件就制作成功啦,编译模板文件,生成对应的文件,将其放入到Java工程里面。