公式应用场景
单元格元素场景
直接插入
富文本中引用
数据列中使用
图表中使用
悬浮元素场景
直接插入
图表中使用
标题/轴定义
条件属性场景
在新值属性中设置值的类型
在控件属性中设置控件水印及控件值
条件直接设置
单元格属性场景
形态
扩展后排序
数据字典形态
报表填报属性场景
提交
数据校验
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