帆软报表FineReport入门:简单报表制作[扩展|左父格|上父格]

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

数据库连接

点击+号>>JDBC

选择要连接的数据库>>填写信息>>点击测试连接

数据库SQLite是帆软的内置数据库, 里面有练习数据

选择此数据库后,点击测试连接即可

数据库查询

方法一:

在左下角的模板数据集选项卡上方点击+号>>数据库查询>> 

点击下拉选项>>全部已经连接的数据库

方法二:

服务器>>服务器数据集>>下拉选项

删除数据库

选中>>右击>>删除

这是删除对数据库的连接

选择表/数据

前提: 示例的销量表是SQLite数据库的

输入查询sql>>点击上方的预览>>确认数据无误后点击确定 

ds1是帆软的默认数据库名称; 

数据库下面是表头字段>>点击三角形即显示

补充

查看执行sql

制作报表步骤

把表头字段拖入工作表编辑区

右侧的单元格元素框会实时发生变化

把想要的字段都拖入之后>>点击预览>>确定

会自动跳转到登录页面>>选择保持登录状态,避免跳出>>登录

以网页形式展示报表; 上方是文件名称

给表格添加框线

选中表格所有内容>>选择相要的框线

点击保存按钮

保存按钮是灰色>>已经保存

保存按钮是蓝色>>有改动, 未保存

在展示报表的网页上点击刷新

刷新后

清空报表内容

选中全部内容>>右击>>清除>>全部

制作报表示例

最终成品 

规划表结构

表名需要4个单元格列

这一部分需要2列

操作

表名部分: 合并单元格>>输入文字>>调整文字格式

合并单元格>>插入斜线>>选择从左上到右下发散>>输入字段名称,用竖线隔开

把光标放在行号分割处, 光标变成黑色实心十字型拖动调整单元格行高(调整列宽同理)

继续拖入相应的表头字段

保存>>刷新展示报表页面>>不符合预期(竖向扩展)

注: 不点击预览的原因>>每次预览都会打开一个展示页面

选中产品单元格>>选择右侧的单元格属性选项卡

此时该单元格内容的扩展方向的纵向扩展>>改成横向扩展>>保存>>刷新展示报表页面

从左下方可以看到, 数据表中并没有销售总量字段

输入文字: 销售总量

拖入销量

保存>>刷新展示页面

销售总量的数据

选中插入数据的单元格>>插入公式按钮>>选择函数类型>>选择函数名>>输入函数要作用的单元格位置>>检查合法性>>确定

或直接输入函数>>选择函数

销售总量是对每个销量员的销量进行求和>>销量数据的位置是C4; 设置左父格为B4(即销售员的位置)

总计

合并单元格>>插入求和函数

(和销售总量相同的步骤)

最后一个单元格>>插入求和函数

选中表格所有部分>>给表格添加框线>>保存>>刷新展示页面

美化

选择模板主题>>单元格属性>>样式

选中表格标题>>在单元格属性样式里选择跟随主题>>选择应用格式

表头等同理

保存>>刷新展示页面

知识点

扩展

表中的箭头 --->表示横向扩展; 箭头向下表示纵向扩展 

设置扩展

左父格和上父格

横向扩展: "产品"列的单元格是"苹果汁"、"牛奶"、"柳橙汁"、"巧克力"、"牛肉干"列的左父格。

纵向扩展: "地区"行的单元格是"华东"、"华北"行的上父格。

销售总量的左父格是销售员

注意:单元格的宽度不要拉太大,否则展示页面会分页

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elf_loader:一个使用Rust编写的ELF加载器

本文介绍一个使用Rust实现的ELF加载器。 下面是elf_loader的仓库链接: github: https://github.com/weizhiao/elf_loaderhttps://github.com/weizhiao/elf_loader crates.io: https://crates.io/crates/elf_loaderhttps://crates.io/cra…

python入门 介绍及变量的使用

1.python介绍 python 是一门计算机语言 常见的计算机语言:python、java、C语言。。。 什么是计算机语言:就是让计算机知道你想干什么,把你的需求使用它能听懂的语言说出来 中国也有一门计算机语言:易语言 能认为是语言的本质上…

Scala基础学习

主要用来处理数据,不处理web,没有类似spring的框架 1. Scala简介 我们基于的scala版本 2.12.10 scala是运行在 JVM 上的多范式(规范)编程语言,同时支持面向对象和面向函数编程。(真实数据与操作过程解耦…

贪心算法

int a[1000], b5, c8; swap(b, c); // 交换操作 memset(a, 0, sizeof(a)); // 初始化为0或-1 引导问题 为一个小老鼠准备了M磅的猫粮,准备去和看守仓库的猫做交易,因为仓库里有小老鼠喜欢吃的五香豆,第i个房间有J[i] 磅的五香豆&#xf…

复现论文:DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization

论文:[2403.16697] DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization github: TYLfromSEU/DPStyler: DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization 论文: 这篇论文还是在PromptStyler:Prompt-driven Style Gener…

AI 编程助手 cursor的系统提示词 prompt

# Role 你是一名极其优秀具有10年经验的产品经理和精通java编程语言的架构师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。 # Goal 你的目标是帮助用户以他容易理解的…

TikTok账户安全指南:如何取消两步验证?

TikTok账户安全指南:如何取消两步验证? 在这个数字化的时代,保护我们的在线账户安全变得尤为重要。TikTok,作为全球流行的社交媒体平台,其账户安全更是不容忽视。两步验证作为一种增强账户安全性的措施,虽…

详解分布式ID实践

引言 分布式ID,所谓的分布式ID,就是针对整个系统而言,任何时刻获取一个ID,无论系统处于何种情况,该值不会与之前产生的值重复,之后获取分布式ID时,也不会再获取到与其相同的值,它是…

react 踩坑记 too many re-renders.

报错信息: too many re-renders. React limits the number of randers to prevent an infinite loop. 需求 tabs只有特定标签页才展示某些按钮 button要用 传递函数引用方式 ()>{} *还有要注意子组件内loading触发 导致的重复渲染

【干货教程】Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)

文章目录 一、环境准备二、安装Ollama2.1 访问Ollama官方网站2.2 下载适用于Windows的安装包2.3 安装Ollama安装包2.4 指定Ollama安装目录2.5 指定Ollama的大模型的存储目录 三、选择DeepSeek R1模型四、下载并运行DeepSeek R1模型五、常见问题解答六、使用Chatbox进行交互6.1 …

关于YApi接口操作

YApi有 接口集合 和 测试集合 两个概念。 接口集合 将接口进行分类,使接口结构更清晰,一个接口只能属于一个集合,且不允许与其他接口重名。测试集合 为了方便我们测试接口,测试集合 将若干接口组合在一起,在这里一个接…

Django REST Framework (DRF) 中用于构建 API 视图类解析

Django REST Framework (DRF) 提供了丰富的视图类,用于构建 API 视图。这些视图类可以分为以下几类: 1. 基础视图类 这些是 DRF 中最基础的视图类,通常用于实现自定义逻辑。 常用类 APIView: 最基本的视图类,所有其…

Django简介

Django是什么 Web应用程序是指在服务器端运行的程序,不需要单独安装,而Django就是其中一个非常流行的框架。 网站运行的主要原理 网站运行的本质就是服务器与客户端之间的数据传输,而其中,超文本传输协议(HTTP&…

JavaScript基础-函数(完整版)

文章目录 函数基本使用函数提升函数参数arguments对象(了解)剩余参数(重点)展开运算符(...) 逻辑中断函数参数-默认参数函数返回值-return作用域(scope)全局作用域局部作用域变量的访问原则垃圾回收机制闭包 匿名函数函数表达式立即执行函数 箭头函数箭头…

1.21作业

1 unserialize3 当序列化字符串中属性个数大于实际属性个数时,不会执行反序列化 外部如果是unserialize()会调用wakeup()方法,输出“bad request”——构造url绕过wakeup 类型:public class&…

LLaMA-Factory|微调大语言模型初探索(3),qlora微调deepseek记录

前言 上篇文章记录了使用lora微调llama-1b,微调成功,但是微调llama-8b显存爆炸,这次尝试使用qlora来尝试微调参数体量更大的大语言模型,看看64G显存的极限在哪里。 1.Why QLora? QLoRA 在模型加载阶段通过 4-bit 量化大幅减少了模型权重的显存占用。QLoRA 通过 反量化到 …

TCP传输可靠性保障:理论讲解→实战面试解析

一、TCP为何需要可靠性保障? TCP作为互联网的"运输队长",承担着80%以上的网络数据传输任务。其核心使命是:在不可靠的IP层之上,构建端到端的可靠传输通道。 想象一下网购时商品运输需要防丢包、防损坏、防错序&#xff…

一篇搞懂vue3中如何使用ref、reactive实现响应式数据

ref 可实现 基本类型、对象类型响应式数据 reactive&#xff1a;只能实现 对象类型响应式 ref实现 基本类型 数据响应式&#xff1a; <template><div class"person"><h2>姓名&#xff1a;{{ name }}</h2><h2>年龄&#xff1a;{{ ag…

Linux 内核自旋锁spinlock(四)--- queued spinlock

文章目录 前言一、queued spinlock1.1 简介1.2. spin_lock/spin_unlock 二、源码解析2.1 struct qspinlock2.2 struct qnode2.3 queued_spin_lock2.3.1 快速申请通道CPU0申请锁 2.3.2 慢速申请通道CPU0/1申请锁CPU0/1/2申请锁CPU0/1/2/3申请锁 queued_spin_lock_slowpath总结 2…

一种最常见的js加密解密

前言 在前端开发的广袤天地中&#xff0c;你是否遭遇过一些看似“乱码”般的代码&#xff0c;根本无从下手理解&#xff1f;这其实很可能是被 _0x处理过的代码。_0x就像一位神秘的“化妆师”&#xff0c;能把原本清晰的代码改头换面。今天&#xff0c;我就来分享如何破解这些被…