帆软报表开发-夯实基础

本文详细介绍了FineReport中数据连接、数据集的管理、报表基础属性(如普通报表、聚合报表、决策报表)、预览模式、数据显示方式、格式设置、数据列属性、参数面板的使用、控件功能、数据筛选过滤方法以及数据填报和可视化图表的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章:数据连接基础

1.1、数据连接

        概念:数据连接是指建立 FineReport 产品与数据库的连接,让 FineReport 能获取到数据库中的数据。

        FineReport 数据连接的方式有如下两种:

  • 在 数据决策系统 中建立数据连接。选择 服务器 > 报表平台管理 > 打开数据决策系统 > 建立数据连接
  • 在FineReport 设计器中建立数据连接。

在 数据决策系统 中建立数据连接

选择 服务器 > 报表平台管理

然后打开数据决策系统 > 建立数据连接

点击 管理系统 > 数据连接 > 数据连接管理 > 新建数据连接,如下图所示:

根据数据库类型选择对应的数据库进行连接,比如以 MySQL 为例

然后输入MySQL 相关信息

配置完成以后,点击右侧的测试连接,查看是否连接成功,如下图所示:

显示连接成功,就可以点击保存,查看到该数据库的连接信息,如下图所示:

在FineReport 设计器中建立数据连接

打开FineReport 设计器,然后点击  服务器 > 定义数据连接 

然后配置数据库相关数据,然后点击  测试连接 , 然后点击确认即可

1.2、数据集

概览:数据集是指可直接应用于模板设计的数据展示集合。

FineReport中的数据集分类:

    在FineReport 中用户可以添加【服务器数据集】或【模板数据集】两种,可根据自己的需要进行添加。

  • 服务器数据集:是对应于整个报表工程的,更换一个模板或新建一个工作薄,仍然可以用服务器数据集中的数据
  • 模板数据集:是对应当前模板的,保存在这个模版 cpt 文件中,不能与其他模板公用,是私有的。

      添加模版数据集的方式有两种:

  • 通过设计器工具栏【模板 > 模板数据集】进行添加
  • 直接在数据管理面板中添加

通过设计器工具栏【模板 > 模板数据集】进行添加,如下图所示:

   

【服务器数据集】 添加如下:

        

FineReport中按其来源范围数据集可分为 :

  • 数据库查询
  • 内置数据库
  • 文件数据集
  • SAP数据集
  • 存储过程
  • 多维数据库
  • 关联数据集
  • 树数据集

数据库查询

数据库查询是指从定义好的数据库连接中,使用SQL语句来查询数据,一般是直接对数据源中的数据库表进行操作,如下图所示:

输入SQL语句,查询出对应的结果数据

内置数据集

内置数据集指的是新建一个类似的数据库表的原表,可作为模板的数据源来设计报表。创建内置数据集的两种方式如下:

  • 输出内置数据集模板:就是直接将模板输出成模板数据,里面使用的所有数据自动变成内置数据集。
  • 定义内置数据集:将数据手输进内置数据集中,再使用其制作模板。
输出内置数据集模板

        以柱状图模板为例,点击 文件 > 输出 >  模板(内置数据) 

  然后修改文件名称,如下图所示:

然后点击刷新,即可查看到刚刚的 测试.cpt 文件

定义内置数据集

        定义内置数据集指的是将数据手动输入到内置数据集中,再使用其制作模版。

具体步骤如下:

  1. 新建一张普通报表
  2. 添加内置数据集

① 新建一张普通报表,如下图所示:

② 添加内置数据集

自定义名称,添加城市、产品、销量字段,如下图所示: 

然后插入数据,如下图所示:

添加的数据如下所示:

第二章:报表基础属性

2.1、报表类型简介

        FineReport 三种设计模式相辅相成,完美的满足了用户对各种报表的需求,下面我们来比较一下各种设计模式的缺点和优势。

  • 普通模式:是FineReport 最常用,用的最多的设计模式。保存的文件为cpt,依靠着单元格的扩展与父子格的关系来实现模板效果, 可进行参数查询、填报报表、图表设计等等,但是在分页预览模式下不能在报表主题中展示控件,而且单元格间相互影响,很难保证独立性。
  • 聚合报表:一般用于一张模板中显示多个独立模板的报表。
  • 决策报表:一般用于控件的显示,保存的文件类型为frm,很好的弥补了普通报表分页预览不能展示控件的问题,同时决策报表可以进行自由拖拽设计,自适应页面大小显示,可以更好的在 移动端 展示。

普通报表

        简介:

                普通报表分为报表主题、参数界面设计、图表应用和填报功能的四个部分,这四个部分是 FineReport 普通报表的几大使用方式。

        特点:

                类Execl 设计界面、无线行列扩展和多sheet 功能、能轻松实现数据间的各种运算,实现复杂表样、分组交叉、卡片分栏、同比环比等功能。

        

        普通报表的设计步骤如下:

 

聚合报表

        简介:

                聚合报表指一个报表包含多个模块,每一块都类似一张单独的报表或者一张图表,块与块之间相互独立,互不影响。

        特点:

                空白画布式设计界面,每个模块相互独立,专门解决大报表难题,单元格扩展分离,互不影响。

        聚合报表的设计步骤如下:

        但由于聚合报表的局限性,更加推荐使用决策报表。

决策报表

        简介:

               决策报表相交于普通报表和聚合报表,决策报表包含二者所拥有的基础组件,同时组件添加更自由化,允许用户根据自己的需求构建报表的框架,在报表中添加更丰富的元素。决策报表自由灵活的设计风格,可以说其专为大屏和移动端而生,可制作画面美观、内容丰富的管理驾驶舱,制作在手机、平板等移动设备端查看的敏捷报表。在同一个页面,整合不同的业务数据,完美展示企业的各类业务指标,实现数据的多维度分析。

        

        决策报表的设计步骤如下:

2.2、预览模式简介

        FineReport 中普通报表总共有4中不同的预览模式,分别如下:

  • 分页预览
  • 填报预览
  • 数据分析
  • 移动端预览

2.3、数据显示方式

        在客户端的浏览器中,查看报表的效果都是通过对基础数据进行加工而来的。制作一张报表模板,首先需要准备报表所需的基础数据。基础数据的来源方式有多种,不管数据来源于哪种方式,经过哪些预处理,最终都是返回如下图1所示的一张或多张二维表。

        拥有了这些基础数据后,我们就可以对这些数据进行再加工,让其显示出我们所需的样式,其数据的显示方式分别为:列表、分组、汇总。

        列表:指制作的报表展示出来的数据与数据集数据完全相同,即数据集中的每条记录无论是否重复都原封不动的展示出来,此为清单式明细列表。

分组:分为普通分组、相邻连续分组和高级分组,我们对比看下三者使用的不同情景。

  • 普通分组:将数据列中相同项合并为一组显示的方式,如图1
  • 相邻连续分组:只将连在一起的相同数据才进行合并的方式,如图2
  • 高级分组:又称分条件分组和公式分组,可以根据需求自定义分组。

2.4、数据显示格式

        从数据表中得到的数据格式不是我们想要的样式,此时就需要对单元格中的数据显示格式进行设置。可对数字、时间、日期等数据进行格式设置,如下图所示:

2.5、数据列属性

        当单元格内容为数据列时,选中单元格,右侧单元格元素面板就会出现数据列属性设置框,或者双击单元格也可以弹出数据列属性设置对话框,可以对数据列进行设置,如下图所示:

基础设置

  1. 选择数据列:指将数据集中的字段与单元格绑定,通过下拉框选择来选择数据列
  2. 父格设置:是指父子格设置,即可在扩展属性设置,也可以在数据列基础设置中设置,与快速入门中的父子格设置相同。
  3. 数据设置:指修改数据显示方式,与第三节中讲解的内容相同。
  4. 扩展方向:指扩展属性中的可伸展性,分为纵向扩展、横向扩展和不扩展。与快速入门中的扩展方向相同。

过滤设置

        1、父格条件,默认选中将父格子作为过滤条件(适用于父子格来自同一个数据集)。将父格作为过滤条件意味着在满足当前单元格条件的同时首先要以父格为条件,子格将继承父格的过滤条件,即如果父格设置了过滤,子格不需要再设置相同条件的过滤。

 

        2、普通条件:对单元格所在数据集的数据列定义过滤条件,只有某个数据列满足条件时,当前单元格的数据才会被选出来。其中过滤条件由【可选列】、【操作符】、【条件】组成,可以为各种形式,用户根据不同需要设置即可。

  • 可选列:为当前单元格数据列所在的数据集的所有数据列,操作符为一些文字化的运算符,条件支持多种形式。
  • 条件:除一些如字符串、整型、日期等数据类型外,还包括公式、单元格、参数、数据列,其中公式、单元格、参数比较常见。

        3、公式条件:若不是对数据列添加过滤条件,或者需要对数据列进行操作后再设置过滤条件,此时可以使用【公式条件】。

高级设置

1、结果集筛选:设置结果集的显示,如显示前N个、后N个、奇数、偶数等,如下图所示:

2、自定义显示:自定义显示单元格的值。例如:可以输入FineReport 公式修改单元格的显示值。默认值为:$$$ ,代表单元格本身的值。

3、可伸展性:指单元格中数据在扩展时,其对应的父格可随数据的扩展而进行伸展使得父格中的内容居中或者靠左靠右显示。

  • 纵向可扩展:数据从上到下纵向展示时,可以设置扩展格左侧单元格的纵向可伸展性。
  • 横向可伸展:数据从左到右横向扩展时,可以设置扩展格上方单元格的横向可伸展性。

执行结果如下图所示: 

4、补充空白数据:可以设置数据倍数,例如设置数据倍数为10,不足10条的数据会自动补足到10条。

执行结果如下图所示: 

第三章:报表基础设置

3.1、页面设置

        页面设置主要指对于普通报表的页面进行基础设置,可以对当前 sheet 进行页面设置,一个报表的每个 sheet 页面设置可以不同。

页面

        

        1、方向:指纸张方向,通常与打印相结合使用。A4纸横向预览效果和纵向预览效果。

        2、纸张大小:纸张大小可以从预定义大小中选择,也可以自己定义纸张大小,其单位可以选择毫米和英寸,默认的为毫米。新建一张普通报表,纸张默认大小为A4的大小。用户可以根据具体情况来设定纸张的大小,在设计器上存在的虚线就是纸张大小的边界标志(分页线),如下图所示:

        3、页边距:可以调整主体内容距离纸张边缘的距离。

        4、高度:指页眉、页脚的高度。

其他

1、分页顺序:用户可以设置页面分页顺序为先行后列,还是先列后行。

2、居中方式:水平居中页面设置水平居中和垂直居中,功能定位是适用于打印时。

3、起始页码:用于设置在有页码显示的报表中,页码显示从起始页码开始,默认值为1,起始页码最小值1。·

4、根据单元格内容自动调整:对于整张报表内的所有单元格,设置单元格行高列宽是否随其内容自动调整。包含有三种调整模式:否、行高、列宽,分别如下:

  • :当前单元格,Web端展示以及打印导出时,以设计器中实际大小展示,单元格中的内容,截取显示。
  • 行高:当前单元格,设计器中的大小不足以摆放下全部文字时,Web端展示以及打印导出时,将保持列宽不变, 根据内容的多少,自动调整行高,显示全部内容。
  • 列宽: 当前单元格,设计器中的大小不足以摆下全部文字时,Web端展示以及打印导出时,将保持行高不变,根据内容的多少,自动调整列宽,显示全部内容。

3.2、重复与冻结

重复与冻结经常使用在:表格过大或分页时,需要标题或者表头实现重复冻结的效果。

1、普通报表:点击  菜单模版>重复与冻结设置,弹出重复与冻结设置的界面,如下图所示:
 

未进行重复和冻结之前如下图所示:

       

        

设置重复及冻结以后如下图所示:

3.3、分页

        使用设计器设计报表时,在常用的【分页预览】模式下展示数据量比较大的报表时,若数据超出页面设置中所设定的纸张大小(分页线),就会自动分页显示。在报表设计页面,可以看到两条黑色虚线,即【分页线】,如下图所示:

        

        常见的分页方式有按组分页固定行数分页

分页-按组分页

        按组分页是指让数据按组来进行分页显示,每个组的数据占据一页。例如:报表原本是按照纸张大小进行分页的,现在希望能够按照货主地区进行分页,一个地区的数据显示在同一个页面当中,如下图所示:

        可以通过在每组数据前设置【行前分页】或者每组数据后设置【行后分页】来实现。

分页-固定行数分页

3.4、排序

        FineReport 支持的三种排序的类型分别为:数据集中的排序、高级排序、扩展后排序

排序类型简介
数据集中的排序通过SQL直接在数据库查询时排序。例如:升序排列(SELECT * FROM 销量 ORDER BY 销量)
高级排序报表根据某【数据列】设置的公式和排列顺序进行的排序。相当于扩展前排序,依赖于【数据列】
扩张后排序【扩展后排序】在制作报表过程中可以实现多种排序需求,是最灵活的排序方式,但由于在扩展完成后进行排序,会对所有格子的位置进行调整,因此性能最差,建议在高级排序无法实现的情况下再使用【扩展后排序】

3.5、条件属性

        条件属性是指给报表的属性添加条件,当满足条件时,对属性的属性值进行修改,从而达到改变报表样式的目的。

        条件属性共有12种,分别为:颜色、字体、超级链接、形态、缩进、行高、分页、列宽、背景、边框、控件、新值。如下图所示:      

属性与说明如下图所示:

例如:设置表格隔行变色,如下图所示:

公式如下:

ROW()%2==0

执行结果:

例如:设置当单价大于100时,显示为红色字体,如下图所示:

 执行结果如下:

第四章:数据查询与过滤基础

4.1、参数面板简介

        参数面板分别为属性、事件、移动端三个主要部分,如下图所示:

参数面板-属性

        在属性面板下,参数面板的各设置项介绍如下表所示:

例如:设置参数查询区域的背景颜色,如下图所示:

效果图:

 参数面板-事件

        事件面板,可为参数面板添加初始化后事件和点击事件

  • 初始化后事件:预览模式之后触发
  • 点击事件:是点击参数参数面板任意地方之后触发

        

例如:初始化页面以后,打印一个日志

执行结果如下图所示: 

 参数面板-移动端

        移动端面板包括手机属性和组件顺序,如下所示:

  • 手机属性:移动端中,模版默认参数界面是通过底部参数界面的漏斗过滤按钮调用的,点击后会跳转到新的页面编辑参数,再进行查询。可以通过设置调整至顶部。
  • 控件顺序:显示所有控件,支持移动各个控件的位置。

4.2、参数简介与参数种类

        参数有两种方式:按作用域分类按定义方式分类

按作用域分类:

  • 模版参数:指在当前模版下创建的参数,只有当前报表可以使用该参数来设计报表,且必须与过滤条件结合筛选数据。
  • 全局参数:指在当前报表工程下创建的参数,在设计器菜单栏 【服务器】>【全局参数】重定义,定义方法与模版参数相同。当前报表工程下的所有报表都可以使用该参数来设计报表,必须与过滤条件结合筛选数据。

按定义方式分类:

  • 模版参数:模版参数和全局参数都属于模版参数的范畴,全局参数的使用方法与模版参数一致,它们之间的区别只是使用范围不同。
  • 数据集参数:在SQL 查询语句中定义数据集参数,直接在数据查询时完成数据的过滤操作。数据集参数根据使用范围不同分为模版数据集参数和服务器数据集参数,只是使用范围不同。

4.3、控件简介

        在报表的具体应用中,经常使用【控件】来实现不同的功能。如下表所示:

例如:设置为文本控件,数据填写

4.4、控件的实际值与显示值

      在控件应用中,当原始数据中存储的字段不适宜展现在报表中,或需要根据不同的原始数据在报表中显示不同的值,部分控件支持通过使用数据字典功能将实际值和显示值做巧妙变换,如下图所示:

       支持数据字典功能,有实际值和显示值区分的控件有:复选框控件、单选按钮组控件、复选框组控件、下拉框控件、下拉复选控制件、列表控件、下拉树、视图树

        控件的实际值和显示值功能逻辑如下:

  • 控件绑定数据字典,传值的时候传的都是实际值。显示值只是用来显示的,传值的时候不会被传递。
  • 参数和控件绑定,通过$参数名(控件名称),获取到的值也是实际值,不是显示值。
  • 通常实际值和显示值是一一对应的关系,但也会存在不一一对应的情况,即多个显示值对应一个实际值,或者多个实际值对应多个显示值。
  • 控件默认值处可以填写显示值,也可以填写实际值。填写显示值也可以匹配到选项,但传递值时传递的依旧是实际值。

4.5、下拉框控件和下拉复选框控件

下拉框控件

下拉框控件及配置面板如下图所示:

下拉框控件-属性面板

基本配置功能介绍如下图所示:

 坐标-尺寸、高级、校验配置如下图所示:

下拉复选框控件

下拉复选框及配置面板如下:

基础属性配置说明如下图所示:

高级、校验属性配置说明如下所示:

下拉框的数据查询,表格过滤的两种方式:
​​​​​​​        ①   通过设置单元格的过滤属性来实现,如下图所示:

        ② 通过数据集参数来实现数据过滤,如下图所示:

SELECT * FROM 销量 WHERE 地区 = '${area}'

​​​​​​​

 

4.6、数据筛选过滤的方法总结

4.7、参数为空选择全部

第五章:数据填报基础

第六章:可视化图表基础

第七章:FVS开发基础

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值