FineReport报表案例

2024-06-22 23:36
文章标签 案例 报表 finereport

本文主要是介绍FineReport报表案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 普通报表

保存的文件类型为 cpt,依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等等,但是在分页预览模式下不能在报表主体中展示控件,而且单元格间相互影响,很难保持独立性。

控制面板:下拉框可以选择地区,点击查询按钮后,只查询出该地区对应的表格和柱形图数据。

表格:表格统计该地区下各销售员每种产品的总销量。

柱形图:柱形图将该地区下各销售员每种产品的总销量以图表的形式进行展示。

报表开发流程

1 创建数据连接

当前使用FineReport的内置数据库 SQLlite

数据库已经配置好,该步骤可跳过

2 创建普通报表

3 设置报表模版

模版可以理解为显示的图表页面

4 创建数据集

使用模版数据集

数据集1

数据集2

 

5 报表设计

I-样式设计

标题指定:合并 A1~D2 单元格,写入报表标题「地区销售概况」,设置标题为 15号字体,字体加粗并居中。

表头设计: 需要设计三个内容 产品,销售员,地区

在一个单元格中用斜线分隔显示三个标题字段信息合并A3、B3 单元格,右击合并后的单元格,点击「单元格元素>插入斜线」。在弹出文本编辑框写入标题字段信息:产品|销售员|地区,此处使用的符号均为英文模式下的符号,同时可以通过添加空格来调整文字的位置。

 

 

 

 

增加边框

选中从A1~D5单元格,点击工具栏中的按钮,在系统弹出的边框设置对话框中,同时添加内部和外部边框

 

增加总计和销售总量

II-数据绑定

将数据集中的数据列拖入到对应单元格中。选中地区字段后按住鼠标左键不放,拖动到单元格中,其他字段同理设置

C5 单元格用于计算每个产品各自的总销量,所以要对 C4 单元格求和,选中 C5 单元格,点击上方快捷按钮中的插入公式,在弹出的公式编辑框中输入公式 SUM(C4)

 

选中 C3 单元格,让产品字段的数据在表格中横向扩展,默认为纵向扩展,右边属性面板选择「单元格属性>扩展>基本>扩展方向>横向」

选中C4单元格,由于 A4、B4、C3 单元格的扩展已经确定了唯一的销量值,故 C4 单元格无需扩展,扩展方向为不扩展。C5和D5单元格也都要设置扩展方向为不扩展

选中 A1~D5 单元格,点击上方的居中按钮,将表格中的字体「居中」显示

当报表中存在不同数据集的数据时,需要通过添加数据过滤条件,建立起不同数据集之间的联系。

我们制作的这张报表的数据来源于两个不同的数据集 ds1 和 ds2,「销售员」字段是这两个数据集共有的字段,我们使用这个字段建立起他们之间的联系。

选中并双击 D4 单元格,弹出数据列对话框,选择过滤。给单元格增加一个普通条件,将 ds2 的销售员字段与 ds1 的销售员字段进行绑定,实现两个数据集之间的关联

 

 

III-图表设计

图表的作用在于可以更加直观地表现数据,提升用户的报表查看体验。我们在这张报表中插入柱形图来直观化展示每个销售员每种产品的销售总量。

合并A7~D18单元格选择菜单栏「插入>单元格元素>插入图表

弹出图表类型选择对话框,这里:选择「柱形图>柱形图」,点击确定

去掉柱形图的标题。选中图表,在右边属性面板选择「单元格元素>样式>标题」,不勾选标题可见。

选中图表,在右边属性面板选择「单元格元素>数据」,设置柱形图的数据

数据来源:单元格数据分类名: =B4系列名: =C3值: =C4注:分类名、系列名、值在设置的时候必须要有等号,否则单元格会被作为字符串处理。

① 柱形图展示的是所有销售员的产品销量统计信息,所以不需要对图表所在的单元格进行扩展。

② 选择图表,在右边属性面板选择「单元格属性>扩展>基本」,扩展方向设置为不扩展,左父格和上父格均设置为无。

用户可以自定义柱形图中系列的柱形颜

选中柱形图,点击属性面板「单元格元素>特效>条件显示>添加条件」,双击条件修改条件名为「系列1柱形紫色」,点击「条件编辑」按钮,在弹出的条件编辑对话框中,点击「+」按钮,新增配色属性,下拉框选择紫色,设置普通条件系列序号等于1,点击「增加」按钮。即实现系列一柱形颜色的改变

父子格介绍

父子格设置- FineReport帮助文档 - 全面的报表使用教程和学习资料

名词解释
父子格单元格中的数据列在进行扩展的过程中存在相互关联的关系。单元格进行扩展的过程中,在无父格的情况下,相对于其右(下)边的单元格而言,扩展格是主动复制的,被称为其他格(其右/下的格)的父格,而其右(下)的单元格是被动跟随复制的,被称为扩展格的子格。父格和子格是相对的概念,即某格是另一格的父格或子格,不存在单独的父格或子格。 从父格的定义中看,显然只有扩展格才能是其他格的父格。
左父格单元格进行纵向扩展时,我们称其为其右边格子的左主格。
上父格单元格进行横向扩展时,我们又称其为其下边格子的上主格。
IV-参数设计

参数的作用在于通过设置参数,可以在参数面板中给参数添加控件,再将控件与报表数据进行绑定,进而实现根据用户输入的参数查询指定的数据。

菜单栏选择「模板>模板参数」,打开模板参数设置对话框

模板参数对话框点击「增加」按钮,新建一个模板参数,双击该参数将它重命名为「地区」,设置默认值为「华东」。点击「确定」完成模板参数的定义

点击参数面板的编辑按钮

右上角控件设置面板会显示没有添加控件的参数,点击地区或者点击全部添加,将参数的默认控件添加到参数面板

选择控件类型

 

选中下拉框控件,在右边的控件设置面板选择「属性」,点击数据字典「编辑」按钮,类型设置为「数据库表」,数据库为「FRDemo」,选择数据库表为「销量」,列名的实际值和显示值为「地区」。

设置好控件后还不能实现根据下拉框中的参数查询指定地区的表格和柱形图信息,需要给表格设置数据过滤条件,当用户下拉选择地区参数点击查询时,表格和柱形图只显示该地区的数据。

双击 A4 单元格,在弹出的数据列对话框中选择「过滤」,添加一个普通条件,让地区等于参数 $地区 ,点击「增加」按钮,点击「确定」。即将地区单元格与参数绑定起来,当下拉框选择地区参数查询时只显示该地区下的表格和图表信息

6 报表部署

点击管理系统,创建FRDemo目录,将报表放在此目录下。点击添加模版,部署报表

选择创建的报表路径,点击下一步,然后确定即可。

查看

这篇关于FineReport报表案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085722

相关文章

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固 通俗易懂版)

《MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固通俗易懂版)》本文主要讲解了MySQL中的多表查询,包括子查询、笛卡尔积、自连接、多表查询的实现方法以及多列子查询等,通过实际例子和操... 目录复合查询1. 回顾查询基本操作group by 分组having1. 显示部门号为10的部门名,员

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck