FineReport报表案例

news2024/11/27 14:49:31

 普通报表

保存的文件类型为 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目录,将报表放在此目录下。点击添加模版,部署报表

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

查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1851784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA快速入门02-快速入门

二、快速入门 2.1 打开IDEA,点击New一个项目 入口,依次打开 File -> New -> Project。 2.2 使用Spring Initializr方式构建Spring Boot项目 2.3 设置项目所属组、项目名称、java版本等 2.4 选择SpringBoot版本及依赖组件 点击Create进行创建。 2.6 创建成…

【第一性原理】邓巴数字

这里写自定义目录标题 什么是邓巴数字邓巴数背后的科学历史上各个组织的人数与邓巴数字的关系在人类进化中的意义现代社会中邓巴数字的体现邓巴数字的意义其他与沟通相关的数据注意事项结论参考 罗宾邓巴教授生于1947年,进化心理学家,牛津大学教授&#…

一种微弱故障特征增强的旋转机械故障诊断方法(MATLAB)

导致轴承失效的根本原因是由异常磨损和局部间的机械冲击所导致的。对轴箱轴承日常运转的下所产生的均匀磨损而言,其振动信号特征与正常轴承振动信号大致一样,随机性较强,其概率密度函数呈现出高斯分布的现象,但由于磨损所导致的不…

C语言程序设计-2 程序的灵魂—算法

【例 2.1】求 12345。 最原始方法: 步骤 1:先求 12,得到结果 2。 步骤 2:将步骤 1 得到的乘积 2 乘以 3,得到结果 6。 步骤 3:将 6 再乘以 4,得 24。 步骤 4:将 24 再乘以 5&#xf…

Python自动化(2)——键盘模拟

Python自动化(2)——键盘模拟 前台键盘模拟 前台键盘模拟和后台键盘模拟的区别在于,是否绑定窗口。即前台模拟是只模拟键盘操作,例如按下按键a,如果聚焦在一个文本文档的编辑区,那么就会把这个a输入进去。但如果是聚焦到了浏览器…

测试辅助工具(抓包工具)的使用1 之初识抓包工具(fiddler)

1.什么是抓包? 说明:客户端向服务器发送请求以及服务器响应客户端的请求,都是以数据包来传递的。 抓包(packet capture):通过工具拦截客户端与服务器交互的数据包。 抓包后可以修改数据包的内容 2.为什么要抓包&…

【洛谷P3366】【模板】最小生成树 解题报告

洛谷P3366 -【模板】最小生成树 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz。 输入格式 第一行包含两个整数 N , M N,M N,M,表示该图共有 N N N 个结点和 M M M 条无向边。 接下…

解决js打开新页面百度网盘显示不存在方法:啊哦,你所访问的页面不存在了。

用js打开新页面open或window.location.href打开百度网盘后都显示:啊哦,你所访问的页面不存在了。 window.open(baidu_url); window.location.href baidu_url;在浏览器上,回车后网盘资源是可以打开的,刷新也是打开的。这是很奇怪…

IPv6知识点整理

IPv6:是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址 。 国…

OkHttp框架源码深度剖析【Android热门框架分析第一弹】

OkHttp介绍 OkHttp是当下Android使用最频繁的网络请求框架,由Square公司开源。Google在Android4.4以后开始将源码中的HttpURLConnection底层实现替换为OKHttp,同时现在流行的Retrofit框架底层同样是使用OKHttp的。 源码传送门 优点: 支持Http1、Http…

初学者的TensorFlow 2.0 开发环境安装 -《MCU嵌入式AI开发笔记》(第七集)

MCU嵌入式AI开发笔记 初学者的TensorFlow 2.0 开发环境安装 -《MCU嵌入式AI开发笔记》(第七集)。抖音、B站、视频号等站点搜索柔贝特三哥,《MCU嵌入式AI开发笔记》视频同步更新,视频详细讲解。 07 初学者的 TensorFlow 2.0 教程 …

【tomcat】tomcat系统架构以及核心启动流程

对于web后端开发工程师来说,tomcat作为一个应用服务器框架本质上就是一个HTTP服务Servlet容器。研究过spring、spring mvc源码的同学应该了解,spring mvc其实就是基于Servlet规范实现的请求的转发路由、转发处理。而Spring和SpringMVC就是通过web.xml文件…

DINO-DETR

DINO-DETR DETR收敛慢的问题1. Contrastive DeNoising Training(对比方法降噪训练)2. Mixed Query Selection(混合查询选择方法对锚点进行初始化)3. Look Forward Twice(两次前向方法)==DINO模型的传播过程,以及部分模块的改进==DETR收敛慢的问题 PnP-DETR(ICCV 2021) 改进了…

同时使用接口文档swagger和knife4j

项目场景: springboot项目中同时使用接口文档swagger和knife4j 问题描述 在实体类中设置了字段必填的属性,在访问接口文档时出现异常 实体类关键代码片段 /*** 部门表 sys_dept*/ public class SysDept extends BaseEntity {private static final lo…

大聪明教你学Java | 深入浅出聊 Kafka

前言 🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言&#x1f4…

2024年6月23日 十二生肖 今日运势

小运播报:2024年6月23日,星期日,农历五月十八 (甲辰年庚午月戊午日),法定节假日。今天国际奥林匹克日,坚不可摧的意志,披荆斩棘的豪情,永远值得拥有! 红榜生…

YOLOv8改进 | SPPF | 双通道特征处理的池化结构——SPPFCSPC【全网独家】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40篇内容,内含各种Head检测头、损失函数Loss、…

LLM主流架构和模型

本文参考自https://github.com/HqWu-HITCS/Awesome-Chinese-LLM?tabreadme-ov-file和Huggingface中的ModelCard(https://huggingface.co/) LLM主要类别架构 LLM本身基于transformer架构。自2017年,attention is all you need诞生起&#x…

P1223 排队接水

题目描述 有 𝑛 个人在一个水龙头前排队接水,假如每个人接水的时间为 𝑇𝑖,请编程找出这 𝑛 个人排队的一种顺序,使得 𝑛个人的平均等待时间最小。 输入格式 第一行为一个整数 &a…

C++ | Leetcode C++题解之第169题多数元素

题目&#xff1a; 题解&#xff1a; class Solution { public:int majorityElement(vector<int>& nums) {int candidate -1;int count 0;for (int num : nums) {if (num candidate)count;else if (--count < 0) {candidate num;count 1;}}return candidate;…