帆软报表——图表(一)

制作图表前期准备

1.安装Navicat Premium12(用于连接MySQL,便于管理数据库,激活码/永久激活方法百度有很多自行查找~)

2.安装帆软报表(项目需要已升级到FineReport10.0版本,可在官网下载安装),安装后在官网获取免费激活码。

制作图表

要求:使用人员信息表,制作人员性别占比饼图。

制作如下:

1、连接 MySQL数据

上方菜单栏服务器—》定义数据库连接

 

点击窗口上方菜单栏中的加号选择JDBC,鼠标双击新创建的JDBC可修改名字,数据库选取MySQL,填写要连接的数据库所在主机、端口和数据库名,驱动器和URL会自动获取,填写用户名和密码点击测试连接,连接成功点击确定即可。

2、开始制作图表

点击上方菜单栏文件—》新建普通报表

 

左下放菜单栏点击模板数据集—》加号—》数据库查询

 

数据库名字可以自行定义;注意选择的数据库是前面连接好的,否则SQL语句无法生效;填写SQL语句,这里where条件查询中的'%${v_hr_user_type}%','%${v_company_name}%'分别表示员工编制类型和所属公司,作为形参,下面制作出的图表会根据其选择的变化而变化。

 

点击上方菜单栏保存按钮,修改文件名(默认是WorkBook1),使用软件默认路径即可,点击保存。

 

 

 将左边新建的数据库中的字段逐个拖到报表中并命名,报表上方空出图表位置,选择上方菜单栏为报表设置合适的样式如图

 

选中序号表格—》单元格属性—》扩展—》扩展方向选择纵向—》左父格选择自定义—》序号向姓名看齐,填写姓名字段所在表格方位(B14),这样设置是为了让序号依次递增。

 

 

点击参数面板的🖊,点击笔进行参数编辑。

 

在参数面板中添加参数

 

修改控件字符串

 

 

因为是展示图表,做成选择框会更方便,所以小扳手—》下拉框控件。

 

 

下面要做下拉框中的选项,这里介绍两种方法:

方法一

1.使用帆软报表自带查询数据库功能,数据字典—》类型设置选择数据库表—》数据库选择步骤1.连接好的—》模式可不选—》选择相应的数据库表—》实际值和显示值一般是同一个字段—》确定;

 

2.点击保存,预览选择填报预览(填报预览是在一个页面中展示全部数据,滑动鼠标即可查看所有数据)

 

3.稍等加载一会选择框中就会出现选项内容,由于是帆软自带查询功能,所以每次刷新页面都会重新查询,这种方法对于表中数据量少、字段中类型种类少的情况比较适用,但是对于数据量大、字段中类型种类多的情况查询会比较慢,加载时间会更长,这对报表来说不够美观,下面介绍第二种方法。

  

 方法二

1.制作图表报表的目的是为了让数据更快速直观美观地可视化,对于方法一中存在的弊端,我们可以采取先优化选择项中的数据,再存入报表设置中,首先先确定要做成选项的数据字段,这里我需要将人员编制类型有哪几种查找出来,可以用distinct()去重查找;

复制代码

-- select distinct(字段名)
-- from 表名

select distinct(hr_user_type)
from v_user_hr_info;

复制代码

查询到的结果表示编制类型的hr_user_type字段包含bzry和bwry两个类型,这是直接从数据表中得到的数据,在没有注释说明的情况下只有开发人员才知道表示的意思,这里转化一下bzry表示编制人员,bwry表示编外人员;

2.通过sql查询得到选择框的数据后,就可以在帆软报表中设置了,数据字典—》类型设置选择自定义—》实际值填写上述数据表中查询到的,显示值填写与实际值相似意思的词即可;

 

3.与方法一中步骤2.一样,保存后选择填报预览,刷新页面会自动获取到设置好的选择内容,无论刷新多少次都能直观快速地显示出来,避免了方法一中出现的数据量大,加载时长过长的问题。(公司的选项内容也是同样的方法设置)

 

4.表单查询效果如下图

 

 目前只做了表单查询,空白处是给后续制作图表留出的位置,已实现表单中的数据可根据选择框中选项的变化而变化,下面接着制作图表。

 

制作图表

插入—》悬浮元素—》插入图表

 

选择饼图,第一个常规的即可,也可根据需求自行选择。

 

数据—》单元格数据

 

因为本题目要求的是统计性别占比,表单和图表会随着参数选择的变化而变化,所以表单中的数据和图表中的数据是一致的,这里我使用的是单元格数据作为绘制饼图的数据,所以找到单元格数据中表示性别的数据字段(在表格中占C14),下面介绍过滤函数GREPARRAY(),GREPARRAY(array,fn):函数(返回true或者false)是条件,过滤此数组,最后形成一个新数组。其中,如果fn参数不合法或者元素的名称没有定义成item,会返回原数组。

示例:
GREPARRAY([3,4,2,3,6,8,7],item!=3)等于[4,2,6,8,7].

也就是说,把【性别】这个字段中的数据当成一个数组,将性别‘男’过滤掉,剩下的就是性别‘女’;反之将性别‘女’过滤掉,剩下的就是性别‘男’,再统计一下过滤后数组中的元素个数,即可得到人生人数和女生人数;

那么我可以使用COUNT(GREPARRAY(C14,item='男' ))来统计女性人数,COUNT(GREPARRAY(C14,item='女' ))来统计男性人数。

 

只统计一个性别分类,分类名可以不用管,系列名才表示整个统计表中的不同类别,找到系列名点击F(x),会弹出公式定义框,在空白处输入公式,检查合法性,公式定义框下半部分有很多公式导航,可以根据不同的需求选择,最后选择确定;

 

 区分好系列名后,需要给系列名赋值,与系列名操作一致,使用count()函数统计总的个数即可;

 

 

点击系列名和值下方的"+",进行同样的操作设置统计男性人数即可。

 

 

设置样式(根据自己的需求设置即可)

样式—》标题—》文本

 

 

样式—》标签—》使用标签—》百分比

 

 

样式—》提示—》使用数据点提示—》系列名—》值

 

 

 最后点击保存—》填报预览,展示结果如下:

 

 

结语

1.制作报表前要分析制作要求,捋好思路;

2.根据数据表观察数据规律,选择合适的SQL语句;

3.多使用,尝试帆软报表的功能,做好学习记录。

 

posted on 2022-09-26 11:19  一个女的  阅读(1897)  评论(0编辑  收藏  举报