公式函数
本文为你列举了设计器中目前支持的所有计算公式。

公式示例
示例 | 说明 |
---|---|
DEFAULT(date, NOW()); | 当date为空时使用当前时间填充 |
ROUND(MUL(price, quantity), 2) | 价格×数量后四舍五入保留2位小数 |
CASE(EQ(level, "VIP"), 0.8, EQ(level, "SVIP"), 0.7, 1.0) | VIP打8折,SVIP打7折,其他不打折 |
CONCAT(lastName, firstName) | 将姓和名拼接成完整姓名 |
IF(GT(score, 90), "优秀", "良好") | 90分以上为优秀,其他为良好 |
SLICELEFT(email, INDEXOF(email, "@")) | 获取@符号前的邮箱用户名部分 |
DIFFDAYS(TODAY(), deadline) | 计算今天到截止日期的天数差 |
SUM(COLUMN(group, 'price')) | 对子表单中price列的值求和 |
CONCAT(SLICELEFT(phone, 3), "****", SLICERIGHT(phone, 4)) | 隐藏手机号中间4位 |
数字函数
函数名称 | 说明 | 示例 |
---|---|---|
TONUMBER | 将参数转换为数字 | TONUMBER("1.5") = 1.5 TONUMBER("2.4e") = 2.4 TONUMBER("ABC") = 0 |
ADD | 获取两个数字相加的值 | ADD(1, 2) = 3 |
SUB | 获取两个数字相减的值 | SUB(10, 1) = 9 |
MUL | 获取两个数字相乘的值 | MUL(2, 2) = 4 |
DIV | 获取两个数字相除的值 | DIV(10, 2) = 5 |
SUM | 获取合集中数值的总和 | SUM(1,2,3) = 6 SUM([5, 6, 7]) = 18 |
MAX | 获取参数列表中的最大值 | MAX(1, 5, 10) = 10 |
MIN | 获取参数列表中的最小值 | MIN(1, 5, 10) = 1 |
ABS | 获取数字的绝对值 | ABS(-10) = 10 ABS(10) = 10 |
AVG | 获取参数列表的平均值 | AVG(2, 4, 6, 8) = 5 |
MOD | 获取两个数字的余数 | MOD(10, 3) = 1 |
SQRT | 获取一个数字的正平方根 | SQRT(9) = 3 |
POWER | 获取指定数字的乘幂 | POWER(2, 4) = 16 |
RAND | 获取一个大于等于0且小于1的随机数 | RAND() = 0.75348173001531 |
PI | 获取圆周率 | PI() = 3.141592653589793 |
ROUND | 将一个小数四舍五入到指定的位数 | ROUND(3.149, 2) = 3.15 ROUND(3.149) = 3 |
FLOOR | 获取指定数字向下取整的值 | FLOOR(1.93) = 1 |
CEIL | 获取指定数字向上取整的值 | CEIL(1.93) = 2 |
FIXED | 将一个小数保留指定位数的小数 | FIXED(1.93, 1) = 1.9 |
TOCHINSESAMOUNT | 获取指定数字的中文大写金额 | TOCHINSESAMOUNT(32.14) = "叁拾贰元壹角肆分" |
文本函数
函数名称 | 说明 | 示例 |
---|---|---|
STARTSWITH | 检查字符串是否以指定字符串开头 | STARTSWITH("ABCDEF","ABC") = true STARTSWITH("ABCDEF","AD") = false |
SLICELEFT | 获取一个字符串从开头开始指定长度的字符串 | SLICELEFT("ABCDE", 3) = "ABC" |
SLICERIGHT | 获取一个字符串从结尾开始指定长度的字符串 | SLICERIGHT("ABCDE", 3) = "CDE" |
TOLOWER | 将字符串中所有大写字母转换为小写字母 | TOUPPER("ABCD") = "abcd" |
TOUPPER | 将字符串中所有小写字母转换为大写字母 | TOUPPER("abcd") = "ABCD" |
INCLUDES | 检查字符串中是否包含指定字符串 | INCLUDES("ABCD", "BC") = 1 INCLUDES("ABCD", "E") = -1 |
CONCAT | 将所有参数拼接,返回拼接后的字符串 | CONCAT("ABC", "DEF") = "ABCDEF" |
REPLACE | 将字符串中的部分文本替换为不同的文本,只替换匹配到的第一个 | REPLACE("AbAc","A","1") = "1bAc" |
REPLACEALL | 将字符串中的部分文本替换为不同的文本,替换所有匹配到的 | REPLACEALL("AbAc","A","1") = "1b1c" |
TRIM | 将字符串前后的空格删除 | TRIM("\t\n A BC \t\n") = "A BC" |
时间函数
函数名称 | 说明 | 示例 |
---|---|---|
NOW | 获取当前的时间 | NOW() = "2024-03-15 12:08:31" |
TODAY | 获取今天的日期 | TODAY() = "2024-03-15" |
YEAR | 获取指定日期的年份 | YEAR("2024-03-15 12:08:31") = 2024 |
MONTH | 获取指定日期的月份 | MONTH("2024-03-15 12:08:31") = 3 |
DAY | 获取指定日期的天数 | DAY("2024-03-15 12:08:31") = 15 |
HOUR | 获取指定日期的小时数 | HOUR("2024-03-15 12:08:31") = 12 |
MINUTE | 获取指定日期的分钟数 | MINUTE("2024-03-15 12:08:31") = 8 |
SECOND | 获取指定日期的秒数 | SECOND("2024-03-15 12:08:31") = 31 |
DIFFDAYS | 获取两个日期之间的天数 | DIFFDAYS("2024-01-15","2024-03-15") = 60 |
DIFFHOURS | 获取两个时间之间的小时数,保留两位小数 | DIFFHOURS("2024-01-15 12:00:00", "2024-01-16 15:00:00") = 27 DIFFHOURS("2024-01-15 12:00:00", "2024-01-15 12:30:00") = 0.5 |
DIFFMINUTES | 获取两个时间之间的分钟数 | DIFFMINUTES("2024-01-15 12:00:00", "2024-01-15 12:30:00") = 30 |
TIMESTAMP | 获取指定日期的时间戳 | TIMESTAMP("2024-03-15 12:08:31") = 1710475711000 |
合集函数
函数名称 | 说明 | 示例 |
---|---|---|
IN | 检查第二个参数是否在合集中 | IN([1,2,3,4], 4) = true IN([1,2,3,4], 5) = false |
LEN | 获取指定合集的长度 | LEN(["a", "b", "c"]) = 3 |
UNION | 将合集/参数中的值去重,返回去重后的合集 | UNION(1, 3, 5, 1, 4, 3) = [1, 3, 5, 4] UNION([1, 2, 3, 1, 2, 3]) = [1, 2, 3] |
COLUMN | 获取子表单中指定字段并返回合集 | COLUMN([{key: 1}, {key: 2}, {key: 3}],"key") = [1, 2, 3] COLUMN([[{key: 1}, {key: 2}], [{key: 3}, {key: 4}]], "key") = [1, 2, 3, 4] |
VALUE | 获取分组表单中指定字段 | VALUE({key: 1}, "key", 2) = 1 VALUE({key: 1}, "value", 2) = 2 VALUE({list: {key: 1}}, "list.key") = 1 |
INTERSECTIONSET | 获取两个集合的交集 | INTERSECTIONSET([1, 3, 5], [1, 4, 3]) = [1, 3] |
LIST | 获取所有参数组成的集合 | LIST([1, 3, 5], [1, 4, 3]) = [[1, 3, 5], [1, 4, 3]] |
逻辑函数
函数名称 | 说明 | 示例 |
---|---|---|
IF | 检查一个条件能否满足,如果满足返回第二个参数,否则返回第三个参数 | IF(false, 1, 0) = 0 IF(true, 1, 0) = 1 |
AND | 将表达式用"并且"链接,当所有表达式均为true时返回true,否则返回false | AND(true, true) = true AND(true, false) = false |
OR | 将表达式用"或"链接,当有一个表达式为true时返回true,否则返回false | OR(false, false) = false OR(false, true) = true |
CASE | 检查是否满足一个或多个条件,返回第一个满足条件的值 | CASE(IN([1,2,3,4], 5), 1, IN([1,2,3,4], 2), 2) = 2 |
NOT | 获取某个逻辑值的相反值 | NOT(true) = false NOT(false) = true |
EQ | 检查两个值是否相等 | EQ(100, 100) = true EQ(100, 90) = false EQ(100, "100") = false |
NE | 检查两个值是否不相等 | NE(100, 90) = true NE(100, 100) = false NE(100, "100") = true |
GE | 检查第一个值是否大于等于另一个值 | GE(100, 90) = true GE(100, 100) = true GE(100, 110) = false |
GT | 检查第一个值是否大于另一个值 | GT(100, 90) = true GT(100, 100) = false GT(100, 110) = false |
LE | 检查第一个值是否小于等于另一个值 | LE(100, 90) = false LE(100, 100) = true LE(100, 110) = true |
LT | 检查第一个值是否小于另一个值 | LT(100, 90) = false LT(100, 100) = false LT(100, 110) = true |
TRUE | 返回逻辑值 true | TRUE() = true |
FALSE | 返回逻辑值 false | FALSE() = false |
DEFAULT | 检查第一个参数,如果为空返回第二个参数,否则返回第一个参数 | DEFAULT("#FF7271", "#000") = "#FF7271" DEFAULT("", "#000") = "" DEFAULT(null, "#000") = "#000" |
EMPTY | 检查参数是为空 | EMPTY("") = true EMPTY([]) = true EMPTY("0") = false |
NOTEMPTY | 检查参数是否不为空 | NOTEMPTY("") = false NOTEMPTY([]) = false NOTEMPTY("0") = true |
ISNUMBER | 检查参数是否为数字 | ISNUMBER("2.34") = true ISNUMBER("2.4e") = false |