开发FineReport的
我是这样开发FineReport的
1. 开发步骤
新建数据连接
新建数据连接的目的是让 FineReport 设计器连接数据库,这样报表就可以在数据库中读取、写入或修改数据。
数据连接的方式有两种,分别是连接内置数据库和连接外置数据库。制作这张报表连接的是 FineReport 内置的 SQLite 类型的数据库,有关外置数据库的连接可参见 JDBC连接数据库。
1)打开设计器,菜单栏选择服务器>定义数据连接。
https://bbs.fanruan.com/forum.php?mod=image&aid=132420&size=300x300&key=6d20ba364dd6f803&nocache=yes&type=fixnone
2)弹出「定义数据连接」对话框,设计器已经默认连接了一个名为 FRDemo 的内置数据库,点击测试链接,弹出「连接成功」提示框,表示数据库 FRDemo 成功与设计器建立连接。接下来就可以从这个数据库中取数用于报表的设计。
https://bbs.fanruan.com/forum.php?mod=image&aid=132421&size=300x300&key=7e1069eaca7eabee&nocache=yes&type=fixnone
2.2 新建报表类型
菜单栏选择文件>新建普通报表或者点击新建普通报表按钮
,新建一张空白的普通报表。
https://bbs.fanruan.com/forum.php?mod=image&aid=132422&size=300x300&key=7f3d475c0ccb7ab4&nocache=yes&type=fixnone
2.3 新建数据集
数据集通过 SQL 查询语句从已经建立连接的数据库中取数,将数据以二维表的形式保存并显示在数据集管理面板处。简单而言数据集是报表设计时的直接数据来源。
数据集按照作用范围分为两种:服务器数据集和模板数据集,它们之间的区别大家可以参见对应文档中的说明。
我们制作的这张普通报表将新建两个模板数据集 ds1 和 ds2。
1)数据集管理面板选择模板数据集,点击上方的
,在弹出的模板数据集类型选择框中点击数据库查询。
https://bbs.fanruan.com/forum.php?mod=image&aid=132423&size=300x300&key=3e1d86a6ba19cab0&nocache=yes&type=fixnone
2)在弹出的数据库查询对话框中,写入数据查询语句SELECT * FROM 销量,新建数据集ds1,查询并取出销量表中的所有数据。
https://bbs.fanruan.com/forum.php?mod=image&aid=132424&size=300x300&key=8ba6e67bc5c5ec72&nocache=yes&type=fixnone
3)同理,新建数据集 ds2,写入数据库查询语句SELECT 销售员,SUM(销量) AS 销售总量 FROM 销量 GROUP BY 销售员,查询并取出每个销售员的销售总量信息。
https://bbs.fanruan.com/forum.php?mod=image&aid=132425&size=300x300&key=7222207d4da8e3b0&nocache=yes&type=fixnone
3)新建好数据集之后,可在数据集管理面板查看取出的数据。
至此报表的数据准备工作已经完成,下面对报表的样式进行设计。
2.4 报表设计
2.4.1 表格设计
1)样式设计
https://bbs.fanruan.com/forum.php?mod=image&aid=132426&size=300x300&key=d9eaee7bc98df117&nocache=yes&type=fixnone
标题:合并 A1~D2 单元格,写入「地区销售概况」。
单元格斜线:在一个单元格中用斜线分隔显示三个标题字段信息,合并 A3、B3 单元格,右击合并后的单元格,点击单元格元素>插入斜线。系统会弹出一个斜线编辑的对话框,在文本编辑框写入标题字段信息:产品|销售员|地区,可以通过添加空格来调整文字的位置。
边框:选中从 A1~D5 单元格,点击工具栏中的
按钮,在系统弹出的边框设置对话框中,同时添加内部和外部边框。
最终样式效果如下图所示:
https://bbs.fanruan.com/forum.php?mod=image&aid=132427&size=300x300&key=ffc195f5fea64c61&nocache=yes&type=fixnone
2)数据绑定
将数据集中的字段拖入到对应单元格中。
https://bbs.fanruan.com/forum.php?mod=image&aid=132428&size=300x300&key=fb22a2c6f6d952e7&nocache=yes&type=fixnone
C5 单元格用于计算每个产品各自的总销量,所以要对 C4 单元格求和,选中 C5 单元格,点击上方快捷按钮中的插入公式,在弹出的公式编辑框中输入公式SUM(C4)。
https://bbs.fanruan.com/forum.php?mod=image&aid=132429&size=300x300&key=12dc0826a836c329&nocache=yes&type=fixnone
https://bbs.fanruan.com/forum.php?mod=image&aid=132430&size=300x300&key=8d8284369fe60987&nocache=yes&type=fixnone
D5 单元格用于统计所有产品的总销量,所以要对 D4 单元格求和,同理,在 D5 单元格插入公式 SUM(D4)。
数据绑定最终效果如下图所示:
https://bbs.fanruan.com/forum.php?mod=image&aid=132431&size=300x300&key=4d75162931a25de3&nocache=yes&type=fixnone
3)属性设置
选中 C3 单元格,让产品字段的数据在表格中横向扩展,右边属性面板选择单元格属性>扩展>基本>扩展方向>横向。有关单元格扩展的概念参见单元格扩展。
https://bbs.fanruan.com/forum.php?mod=image&aid=132432&size=300x300&key=bafefd5ab6f2400a&nocache=yes&type=fixnone
选中 C4 单元格,销量字段数据不进行扩展,设置它的扩展方向为不扩展。
https://bbs.fanruan.com/forum.php?mod=image&aid=132433&size=300x300&key=11f2c90984637574&nocache=yes&type=fixnone
选中 A1~D5 单元格,点击上方的居中按钮,将表格中的字体居中显示。
https://bbs.fanruan.com/forum.php?mod=image&aid=132434&size=300x300&key=83a00331c0e9616a&nocache=yes&type=fixnone
4)多数据集关联
当报表中存在不同数据集的数据时,需要通过添加数据过滤条件,建立起不同数据集之间的联系。
我们制作的这张报表的数据来源于两个不同的数据集 ds1 和 ds2,「销售员」字段是这两个数据集共有的字段,我们使用这个字段建立起他们之间的联系。
选中并双击 D4 单元格,弹出数据列对话框,选择过滤。给单元格添加一个普通条件,将 ds2 的销售员字段与 ds1 的销售员字段进行绑定,实现两个数据集之间的关联。
https://bbs.fanruan.com/forum.php?mod=image&aid=132435&size=300x300&key=810bf2c3cc1bc33c&nocache=yes&type=fixnone
https://bbs.fanruan.com/forum.php?mod=image&aid=132436&size=300x300&key=06bd979ac2d5d5d0&nocache=yes&type=fixnone
2.4.2 图表设计
https://bbs.fanruan.com/forum.php?mod=image&aid=132437&size=300x300&key=f5295c96db15694e&nocache=yes&type=fixnone
图表的作用在于可以更加直观地表现数据,提升用户的报表查看体验。这边只是简单引出图表的概念,有关图表的详细内容参见图表入门。
我们在这张报表中插入柱形图来直观化展示各销售员每个产品的销售总量。
1)合并 A7~D18 单元格,选择菜单栏插入>单元格元素>插入图表。
https://bbs.fanruan.com/forum.php?mod=image&aid=132438&size=300x300&key=5fc5620fd85a50a2&nocache=yes&type=fixnone
2)弹出图表类型选择对话框,这里选择柱形图>柱形图,点击确定。
3)选中图表,在右边属性面板选择单元格元素>数据,设置柱形图的数据。
数据来源:单元格数据
分类名:=B4
系列名:=C3
值:=C4
注:分类名、系列名、值在设置的时候必须要有等号,否则单元格会被作为字符串处理。
https://bbs.fanruan.com/forum.php?mod=image&aid=132439&size=300x300&key=4125e7de275ea800&nocache=yes&type=fixnone
4)柱形图是对表格中地区销售概况数据的图形化展示,所以无需再次设置标题,我们在图表样式中去掉柱形图的标题。
选中图表,在右边属性面板选择单元格元素>样式>标题,不勾选标题可见。
https://bbs.fanruan.com/forum.php?mod=image&aid=132440&size=300x300&key=19811b0dc9679fe9&nocache=yes&type=fixnone
5)这里柱形图展示的是所有销售员的产品销量统计信息,所以不需要对图表所在的单元格进行扩展。
选择图表,在右边属性面板选择单元格属性>扩展>基本,扩展方向设置为不扩展,左父格和上父格均设置为无。有关父子格的概念参见父子格设置。
注:原理上,此处只需设置上父格为无即可。但为了方便记忆,建议将两个父格均设置为无。
注:原理上,此处上父格设置为无即可,但为了方便记忆,建议这种表格的两个父格均设置为无。
6)用户可以自定义柱形图中系列的柱形颜色,下面我们将系列一的柱形颜色从蓝色修改为紫色。
选中柱形图,点击属性面板单元格元素>特效>条件显示>添加条件,双击条件修改条件名为「系列1柱形紫色」,点击条件编辑按钮,在弹出的条件编辑对话框中,点击
按钮,新增配色属性,下拉框选择紫色,设置普通条件「系列序号等于1」,点击增加按钮。即实现系列一柱形颜色的改变。
https://bbs.fanruan.com/forum.php?mod=image&aid=132441&size=300x300&key=a6ae9ce75dcebde9&nocache=yes&type=fixnone
2.4.3 参数设计
参数的作用在于通过设置参数,可以在参数面板中给参数添加控件,再将控件与报表数据进行绑定,进而实现根据用户输入的参数查询指定的数据。这边只是简单引出参数的概念,有关参数的详细内容参见参数入门。
1)菜单栏选择模板>模板参数,打开模板参数设置对话框。
https://bbs.fanruan.com/forum.php?mod=image&aid=132442&size=300x300&key=ecd48a12269dbc10&nocache=yes&type=fixnone
2)模板参数对话框点击增加按钮,新建一个模板参数,双击该参数将它重命名为「地区」,设置默认值为「华东」。
3)点击参数面板的编辑按钮,进入参数面板设置界面。
https://bbs.fanruan.com/forum.php?mod=image&aid=132443&size=300x300&key=ea984239bc331629&nocache=yes&type=fixnone
https://bbs.fanruan.com/forum.php?mod=image&aid=132444&size=300x300&key=7a03811499e37537&nocache=yes&type=fixnone
4)右上角控件设置面板会显示没有添加控件的参数,点击地区或者点击全部添加,将参数的默认控件添加到参数面板。
https://bbs.fanruan.com/forum.php?mod=image&aid=132445&size=300x300&key=ded67e986a23d55c&nocache=yes&type=fixnone
https://bbs.fanruan.com/forum.php?mod=image&aid=132446&size=300x300&key=18ba1f43a9fd0a18&nocache=yes&type=fixnone
5)点击自定义控件的编辑按钮,选择下拉框控件类型。
https://bbs.fanruan.com/forum.php?mod=image&aid=132447&size=300x300&key=988eca64f11917de&nocache=yes&type=fixnone
6)选中下拉框控件,在右边的控件设置面板选择属性,点击数据字典编辑按钮,类型设置为「数据库表」,数据库为「FRDemo」,选择数据库表为「销量」,列名的实际值和显示值为「地区」。
这样就给下拉框控件绑定了数据库销量表中的地区这个字段,这个字段下有两个地区信息,分别为华东和华北,用户可下拉选择华东或者华北来查询对应地区下的销售概况信息。
https://bbs.fanruan.com/forum.php?mod=image&aid=132448&size=300x300&key=60e9854811c740c6&nocache=yes&type=fixnone
7)再次点击参数面板的编辑按钮,完成参数控件的设置。
https://bbs.fanruan.com/forum.php?mod=image&aid=132449&size=300x300&key=2106b597cd493b8d&nocache=yes&type=fixnone
8)设置好控件后还不能实现根据下拉框中的参数查询指定地区的表格和柱形图信息。因为数据集中的数据是将数据库中的数据全部取出来,表格的数据来源于数据集,柱形图的数据来源于表格,所以需要给表格设置数据过滤条件,当用户下拉选择地区参数点击查询时,表格和柱形图只显示该地区的数据。
双击 A4 单元格,在弹出的数据列对话框中选择过滤,添加一个普通条件,让地区等于公式if(len($地区)==0,nofilter,$地区),点击增加按钮,点击确定。即将地区单元格与参数绑定起来,当下拉框选择地区参数查询时只显示该地区下的表格和图表信息。
https://bbs.fanruan.com/forum.php?mod=image&aid=132450&size=300x300&key=84f5eb2cebf12adc&nocache=yes&type=fixnone
至此这张报表已经制作完成,下面我们分别在PC端和移动端查看报表的效果。
2.5 报表预览
2.5.1 PC端
https://bbs.fanruan.com/forum.php?mod=image&aid=132451&size=300x300&key=767059f83dfde2c8&nocache=yes&type=fixnone
报表必须先保存才能预览,点击保存按钮保存报表,点击预览按钮,选择分页预览,即可在浏览器中查看报表。
https://bbs.fanruan.com/forum.php?mod=image&aid=132452&size=300x300&key=73728c083d45fb70&nocache=yes&type=fixnone