1. 概述
在线视频学习请查看:第一张报表
这篇文档通过使用 FineReport 内置数据库的数据制作一张简单普通报表,让大家可以快速了解 FineReport 普通报表的制作流程。
1.1 报表设计流程图
1.2 预期效果
在制作这张简单普通报表之前,我们先来看一下报表最终呈现出来的效果,然后我们再根据这个效果来设计报表的样式。
这张报表包含的功能模块:
参数面板:下拉框可以选择地区,点击查询按钮后,只查询出该地区对应的表格和柱形图数据。
报表主体:表格统计该地区下各销售员每个产品的总销量。
柱形图:柱形图将该地区下各销售员每个产品的总销量以图表的形式进行展示。
介绍完报表的实现效果,下面我们根据报表制作流程图来设计这张简单普通报表。
2. 制作步骤
2.1 新建数据连接
新建数据连接的目的是让 FineReport 设计器连接数据库,这样报表就可以在数据库中读取、写入或修改数据。
数据连接的方式有两种,分别是连接内置数据库和连接外置数据库。制作这张报表连接的是 FineReport 内置的 SQLite 类型的数据库,有关外置数据库的连接可参见 JDBC连接数据库 。
1)打开设计器,菜单栏选择「服务器>定义数据连接」,如下图所示:
2)弹出「定义数据连接」对话框,设计器已经默认连接了一个名为 FRDemo 的内置数据库,点击「测试链接」,弹出「连接成功」提示框,表示数据库 FRDemo 成功与设计器建立连接。接下来就可以从这个数据库中取数用于报表的设计。
2.2 新建报表类型
1)菜单栏选择「文件>新建普通报表」或者点击「新建普通报表」按钮,新建一张空白的普通报表,如下图所示:
2)用户可根据需要展示的数据进行页面设置,此处点击菜单栏选择「模板>页面设置」,方向选择纵向,纸张大小选择预定义 A4 。
2.3 新建数据集
数据集通过 SQL 查询语句从已经建立连接的数据库中取数,将数据以二维表的形式保存并显示在数据集管理面板处。简单而言数据集是报表设计时的直接数据来源。
数据集按照作用范围分为两种:服务器数据集和模板数据集,它们之间的区别请参见:数据集
我们制作的这张普通报表将新建两个模板数据集 ds1 和 ds2。
1)数据集管理面板选择「模板数据集」,点击上方的,在弹出的模板数据集类型选择框中点击「数据库查询」。如下图所示:
2)在弹出的数据库查询对话框中,写入数据查询语句 SELECT * FROM 销量 ,新建数据集 ds1,查询并取出「销量」表中的所有数据。如下图所示:
3)同理,新建数据集 ds2,写入数据库查询语句 SELECT 销售员,SUM(销量) AS 销售总量 FROM 销量 GROUP BY 销售员 ,查询并取出每个销售员的销售总量信息。如下图所示:
3)新建好数据集之后,可在数据集管理面板查看取出的数据。如下图所示:
至此报表的数据准备工作已经完成,下面对报表的样式进行设计。
2.4 报表设计
2.4.1 表格设计
1)样式设计
标题:合并 A1~D2 单元格,写入报表标题「地区销售概况」,设置标题为 15 号字体,字体「加粗」并「居中」。如下图所示:
单元格斜线:在一个单元格中用斜线分隔显示三个标题字段信息,合并 A3 和 B3 单元格,右击合并后的单元格,点击「单元格元素>插入斜线」。系统会弹出一个斜线编辑的对话框,在文本编辑框写入标题字段信息:产品|销售员|地区,此处使用的符号均为英文模式下的符号,同时可以通过添加空格来调整文字的位置。如下图所示:
边框:选中从 A1~D5 单元格,点击工具栏中的 按钮,在系统弹出的边框设置对话框中,同时添加内部和外部边框。如下图所示:
最终样式效果如下图所示:
2)数据绑定
选中数据集中的字段后按住鼠标左键不放,将对应的数据拖动单元格中,如下图所示:
C5 单元格用于计算每个产品各自的总销量,所以要对 C4 单元格求和,选中 C5 单元格,点击上方快捷按钮中的插入公式,在弹出的公式编辑框中输入公式 SUM(C4)。如下图所示:
D5 单元格用于统计所有产品的总销量,所以要对 D4 单元格求和,同理,在 D5 单元格插入公式 SUM(D4) 。
数据绑定最终效果,如下图所示:
3)属性设置
选中 C3 单元格,让产品字段的数据在表格中横向扩展,右边属性面板选择「单元格属性>扩展>基本>扩展方向>横向」。
选中 C4 单元格,由于 A4、B4、C3 单元格的扩展已经确定了唯一的销量值,故 C4 单元格无需扩展,扩展方向为「不扩展」。
C5 和 D5 单元格也都要设置扩展方向为「不扩展」。有关单元格扩展的概念参见 单元格扩展 。如下图所示:
选中 A1~D5 单元格,点击上方的居中按钮,将表格中的字体「居中」显示。
4)多数据集关联
当报表中存在不同数据集的数据时,需要通过添加数据过滤条件,建立起不同数据集之间的联系。我们制作的这张报表的数据来源于两个不同的数据集 ds1 和 ds2,「销售员」字段是这两个数据集共有的字段,我们使用这个字段建立起他们之间的联系。
选中并双击 D4 单元格,弹出数据列对话框,选择「过滤」。给单元格添加一个普通条件,将 ds2 的销售员字段与 ds1 的销售员字段进行绑定,实现两个数据集之间的关联。如下图所示:
2.4.2 图表设计
图表的作用在于可以更加直观地表现数据,提升用户的报表查看体验。这边只是简单引出图表的概念,有关图表的详细内容参见 图表入门
我们在这张报表中插入柱形图来直观化展示各销售员每个产品的销售总量。
1)合并 A7~D18 单元格,选择菜单栏「插入>单元格元素>插入图表」。弹出图表类型选择对话框,这里选择「柱形图>柱形图」,点击确定。如下图所示:
2)选中图表,在右边属性面板选择「单元格元素>数据」,设置柱形图的数据。如下图所示:
数据来源:单元格数据
分类名:=B4
系列名:=C3
值:=C4
注:分类名、系列名、值在设置的时候必须要有等号,否则单元格会被作为字符串处理。
3)柱形图是对表格中地区销售概况数据的图形化展示,所以无需再次设置标题,我们在图表样式中去掉柱形图的标题。
选中图表,在右边属性面板选择「单元格元素>样式>标题」,不勾选「标题可见」。如下图所示:
4)这里柱形图展示的是所有销售员的产品销量统计信息,所以不需要对图表所在的单元格进行扩展。
选择图表,在右边属性面板选择「单元格属性>扩展>基本」,扩展方向设置为不扩展,左父格和上父格均设置为无。有关父子格的概念参见 父子格设置。如下图所示:
注:原理上,此处只需设置上父格为无即可。但为了方便记忆,建议将两个父格均设置为无。
注:原理上,此处上父格设置为无即可,但为了方便记忆,建议这种表格的两个父格均设置为无。
5)用户可以自定义柱形图中系列的柱形颜色,下面我们将系列一的柱形颜色从蓝色修改为紫色。
选中柱形图,点击属性面板「单元格元素>特效>条件显示>添加条件」,双击条件修改条件名为「系列1柱形紫色」,点击「条件编辑」按钮,在弹出的条件编辑对话框中,点击按钮,新增配色属性,下拉框选择紫色,设置普通条件系列序号等于1,点击「增加」按钮。即实现系列一柱形颜色的改变。如下图所示:
2.4.3 参数设计
参数的作用在于通过设置参数,可以在参数面板中给参数添加控件,再将控件与报表数据进行绑定,进而实现根据用户输入的参数查询指定的数据。这边只是简单引出参数的概念,有关参数的详细内容参见 参数简介 。
1)菜单栏选择「模板>模板参数」,打开模板参数设置对话框。模板参数对话框点击「增加」按钮,新建一个模板参数,双击该参数将它重命名为「地区」,设置默认值为「华东」。点击「确定」完成模板参数的定义。如下图所示:
2)点击参数面板的「编辑」按钮,进入参数面板设置界面。右上角控件设置面板会显示没有添加控件的参数,点击地区或者点击全部添加,将参数的默认控件添加到参数面板,点击自定义控件的「编辑」按钮,选择下拉框控件类型。如下图所示:
3)选中下拉框控件,在右边的控件设置面板选择「属性」,点击数据字典「编辑」按钮,类型设置为「数据库表」,数据库为「FRDemo」,选择数据库表为「销量」,列名的实际值和显示值为「地区」。
这样就给下拉框控件绑定了数据库销量表中的地区这个字段,这个字段下有两个地区信息,分别为华东和华北,用户可下拉选择华东或者华北来查询对应地区下的销售概况信息。
4)再次点击参数面板的编辑按钮,完成参数控件的设置。
5)设置好控件后还不能实现根据下拉框中的参数查询指定地区的表格和柱形图信息。因为数据集中的数据是将数据库中的数据全部取出来,表格的数据来源于数据集,柱形图的数据来源于表格,所以需要给表格设置数据过滤条件,当用户下拉选择地区参数点击查询时,表格和柱形图只显示该地区的数据。
双击 A4 单元格,在弹出的数据列对话框中选择「过滤」,添加一个普通条件,让地区等于参数 $地区 ,点击「增加」按钮,点击「确定」。即将地区单元格与参数绑定起来,当下拉框选择地区参数查询时只显示该地区下的表格和图表信息。如下图所示:
至此这张报表已经制作完成,下面我们分别在 PC 端和移动端查看报表的效果。
2.5 报表预览
2.5.1 PC 端
报表必须先保存才能预览,点击「保存」按钮保存报表,点击「预览」按钮,选择「分页预览」,即可在浏览器中查看报表。如下图所示:
浏览器中报表效果如下图所示:
2.5.2 移动端
移动端查看报表的方式参见 报表移动端预览
移动端报表效果如下图所示:
3. 已完成模板
已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\第一张报表.cpt
点击下载模板:第一张报表.cpt