FineReport进阶篇-数据表现&公式

文章详细介绍了FR软件中公式的各种应用场景,包括单元格、悬浮元素、条件属性和报表填报属性等。讨论了文本、日期和数组等各类函数的用法,如CHAR、CONCATENATE、TODAY、DATE、INARRAY、JOINARRAY等,并提供了示例。同时,还提到了公式编写的过程和单元格的加载顺序。
摘要由CSDN通过智能技术生成

公式应用场景

单元格元素场景

直接插入
富文本中引用
数据列中使用
图表中使用

悬浮元素场景

直接插入
图表中使用
标题/轴定义

条件属性场景

在新值属性中设置值的类型
在控件属性中设置控件水印及控件值
条件直接设置

单元格属性场景

形态
扩展后排序
数据字典形态

报表填报属性场景

提交
数据校验

FR常用函数

文本函数

  • 基本都是区分大小写的
根据指定数字代码返回对应的字符:CHAR(number)
字符的拼接:CONCATENATE(text1,text2,...) 或 +
检测两组文本是否相同:exact(text1,text2),是的话返回true
从start_num开始,返回第一次出现的(find_text)在(within_text)中的索引:FIND(find_text,within_text,start_num)
获取字符长度:LEN
英文变大写:UPPER
格式化:FORMAT
按照索引查找:INDEXOF
清除左侧空白字符:TRIM()
分割字符串为数组:SPLIT()

日期函数

转化日期
 - DATE(2023,7,13)返回值为2023-07-13
获取当前日期,时间
 - TODAY() 返回值类型为yyyy-MM-dd
 - NOW() 返回值类型为yyyy-MM-dd hh:mm:ss
 - YEAR()
 - MONTH()
 - DAY()
日期的加减
 - datedelta(today(),-1)  返回前一天的天数
 - monthdelta()
 - yeardelta()
 - DATEDIF()  返回两个指定日期间的天数
 - eg:DATEDIF("2023/7/13","2020/3/30","Y") Y代表年的差值
 - DATESUBDATE("2023-07-13","2020-07-12","h")返回具体时间的差值
获取某月具体某天
 - DATEINMONTH(today(),-1) 返回当月最后一天
 - DATEINMONTH(today(),1) 返回当月第一天

数组函数

过滤数组
 - GREPARRAY()
 - eg:GREPARRAY([2,3,4,5,6,1,2,3],item!=3) = [2,4,5,6,1,2]
返回值在数组中的位置
 - INARRAY
 - INARRAY(co,array)返回co在数组array中的位置,如果co不在array中,则返回0
返回数组的第n个元素
 - indexofarray
 - (["BI","FR","fanruan"],2) 返回FR
数组生成字符串
 - JOINARRAY
 - joinarray([1,2],";")=[1;2]
 - joinarray([hello,world],";")=[hello-world]
把数组中的项目以特定规则进行转化 
 - MAPARRAY()
 - MAPARRAY([123,321,112,121],left(item,1)) 1,3,1,1
生成数字序列
 - RANGE(from,to,step)
 - range(2,6)  2,3,4,5,6
 - range(0,900,225)/10 

报表函数

行号与列号
 - ROW()
 - COL()
SQL
 - SQL(数据连接名,sql,列,行)
MAP
 - MAP(索引值,数据集名字,索引值所在的列序号,所在返回值的列序号)
Ds1.SELECT
 - ds1.SELECT(返回的字段,条件)
VALUE
 - VALUE(表名,列号,行号)

其他函数

EVAL
 - 返回表达式exp计算后的结果
 - eg:EVAL("2+5")    7
LET
 - 局部变量赋值函数
 - LET(a,5,b,6,a+b)     11
SEQ
 - 返回该函数被第几次执行
UUID
 - UUID():返回36位随机机器数
 - UUID(32):返回32位随机机器数

书写公式

了解需求
整理思路,实现逻辑简单的部分
整理计算过程顺序
按顺序加函数,加嵌套

单元格的加载顺序:
	数据集>>高级-显示值>>条件属性-新值>>形态>>条件属性-形态>>样式>>条件属性-样式>>js
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值