FineReport学习(三)——动态隔间运算
核心公式: 显示列[显示列的父列:偏移量]
动态格间运算案例,数据集使用默认FRDemo.db库的订单表
SELECT STRFTIME('%m',订购日期) AS 月份,应付金额 FROM 订单 WHERE STRFTIME('%Y',订购日期)='2011'
模板样式设计,这里注意B2单元格,采用汇总求和
1)绝对层次运算:显示列[显示列的父列:偏移量]
B2[A2:1],B2代表要显式的列,[A2:1]代表A2作为父列,下面的第一个偏移量,即3949.70
B2[A2:2],B2代表要显式的列,[A2:2]代表A2作为父列,下面的第二个偏移量,即2293.65
2)绝对层次运算:显示列[显示列的父列:偏移量]
B2[A2:-1],B2代表要显式的列,[A2:-1]代表A2作为父列,偏移量为-1
这里需要注意,如果左父格为默认,也就是左父格为A2,结果如下所示
如果左父格为空,结果如下所示
3)获取单元格扩展出来的所有值:B2[!0]
可以根据不同的扩展方向,显示相应的样式
4) 比较、占比、环比的操作
比较操作
因为是求下面的每一个值与第一个值的差值,因此需要写入公式,并将“比较”列设置为保留两位有效数字
占比操作
顾名思义就是计算某个单独的数据,在总量中占据的比例。
在上述操作的基础上,添加“占比”列。直接使用自带函数进行占比运算,比较简单,操作如下
调整“占比”列的格式,保存格式为“百分比”,并两位有效数字
环比操作
环比是每月与上月的数据进行一个比率运算。
在上述操作的基础上,添加“环比”列。直接使用自带函数进行环比,比较简单,操作如下。
调整“环比”列的格式,保存格式为“百分比”,并两位有效数字
5)逐层累计与跨层累计的操作
以SQL语句的结果为数据源,完成如下需求
SQL语句
select strftime('%Y',订购日期) as 年份, strftime('%m',订购日期) as 月份,应付金额 from 订单 where 年份 in('2011','2010')
逐层累计:逐层累计就是在分组报表中,每一组中分别将每层与上一层数据相加,得到这一层的累计结果,并按照年份隔断。
跨层累计:跨层累计,不按照年份隔断,一直求累加和。
将“应付金额”设置为汇总求和
接着添加“逐层累计”列和“跨层累计”列。我们都是直接使用官方自带的函数,操作如图
6)条件汇总
实现公式:
count(c2[!0]{a2=$a2 &&c2>2500})
{}里面是筛选条件,a2=$a2表示在当前A3组内;c2>2500表示总额大于或等于2500
设置该单元格的左父格是【年度】,因为我们是按照【年度】分组统计的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?