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

相关文章

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

C#中的Drawing 类案例详解

《C#中的Drawing类案例详解》文章解析WPF与WinForms的Drawing类差异,涵盖命名空间、继承链、常用类及应用场景,通过案例展示如何创建带阴影圆角矩形按钮,强调WPF的轻量、可动画特... 目录一、Drawing 是什么?二、典型用法三、案例:画一个“带阴影的圆角矩形按钮”四、WinForm

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更