JVS函数公式全解析:从内置函数到扩展能力的全覆盖

27 阅读11分钟

函数公式是JVS的核心、通用的基础能力,主要用于数据的动态加工。 函数公式是否好用 一个核心的能力 在与 内置的函数是否足够多,以及函数扩展的能力。

部分公式介绍

先看看系统中内置的部分函数说明:

函数

函数分类

说明

说明

上手实例

EQ

逻辑函数

两个值比较,相等返回 true,默认忽略大小写,若不忽略,则填写第三个参数true

2个,必填

EQ(value1,value2)

NE

逻辑函数

两个值比较,不相等返回 true,默认忽略大小写,若不忽略,则填写第三个参数true

2个,必填

NE(value1,value2)

LT

逻辑函数

value1小于value2返回 true

2个,必填

LT(value1,value2)

GT

逻辑函数

value1大于value2返回 true

2个,必填

GT(value1,value2)

LE

逻辑函数

value1小于等于value2返回 true

2个,必填

LE(value1,value2)

GE

逻辑函数

value1大于等于value2返回 true

2个,必填

GE(value1,value2)

AND

逻辑函数

当参数组中的所有参数逻辑值为 true 时(逗号隔开的逻辑式子都满足),才返回 true,当参数组中的任何一个参数逻辑值为 false 时,就会返回false。

至少1个,必填

AND(logical1, [logical2], ...)

OR

逻辑函数

在参数组中,任何一个参数逻辑值为 true(逗号隔开的逻辑式子其中一项满足),即返回 true;只有当所有逻辑参数值为 false,才返回 false。

至少1个,必填

OR(logical1,[logical2], ...)

NOT

逻辑函数

对参数逻辑值求反。NOT 比较简单,就是把括号里为 true 的值变成 false,括号里为 false 的值变为 true。

1个,必填

NOT(logical)

IF

逻辑函数

判断一个条件能否满足;如果满足返回一个值,如果不满足则返回另外一个值

3个,必填

IF(A,B,C)

ISEMPTY

逻辑函数

判断一个字段是否为空;如果为空,则返回 true;如果不为空则返回 false

1个,必填

ISEMPTY(字段)

NUMBERCOMP

逻辑函数

数值组件与数值组件2比较,大于返回1,等于返回0,小于返回-1

2个,必填

例1:NUMBERCOMP(3,6)

ISVALIDINTEGER

逻辑函数

判断参数是否为整型数字。

也可用于判断数字类型字段是否为空。

1个,必填

例1:ISVALIDINTEGER("bbb")

ISNOTEMPTY

逻辑函数

判断字符类型参数是否不为空,为空返回false,不为空返回true。

1个,必填

ISNOTEMPTY("bbb")

DENGYU

逻辑函数

判断两数值类型参数是否相等

2个,必填

DENGYU(4,5)

ISNUMBER

逻辑函数

判断参数是否为数字类型

1个,必填

ISNUMBER("bbb")

CONCATENATE

文本函数

将多个字符串拼接合成一个文本字符串

至少1个,必填

CONCATENATE(text1,[text2], ...)

LEFT

文本函数

从一个文本字符串的第一个字符开始返回指定个数的字符,如果文本长度小于自定字符个数,就将原始文本返回

2个,必填

LEFT(text,num_chars)

RIGHT

文本函数

从一个文本字符串的最后一个字符开始返回指定个数的字符,如果文本长度小于自定字符个数,就将原始文本返回

2个,必填

RIGHT(text,num_chars)

LEN

文本函数

返回文本字符串中的字符个数

1个,必填

LEN(text)

LOWER

文本函数

将一个文本字符串中的所有大写字母转换为小写字母

1个,必填

LOWER(text)

UPPER

文本函数

将一个文本字符串中的所有小写字母转换为大写字母

1个,必填

UPPER(text)

REPLACE

文本函数

替换字符串参数1,要替换字符数为参数2,替换后的内容为参数3

3个,必填

REPLACE(“aabbcc”,"EE","bb")

REPT

文本函数

将文本重复指定次数

2个,必填

REPT(text, number_times)

SEARCH

文本函数

在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号,该编号从第二个文本字符串的第一个字符算起。返回 0 则表示未查找到

3个,前2个必填

SEARCH(findtext,withintext,[start_num])

MID

文本函数

截取文本的有效部分内容

3个,必填

MID(text,start_index,end_index)

ADD

数学函数

计算多个字段值总和

至少1个,必填

ADD(number1, [number2], ...)

AVERAGE

数学函数

求多个数值的平均值

至少1个,必填

AVERAGE(number1, [number2], ...)

MAX

数学函数

返回一组数字中的最大值

至少1个,必填

MAX(Number1, [Number2], ...)

MIN

数学函数

返回一组数字中的最小值

至少1个,必填

MIN(Number1, [Number2], ...)

ABS

数学函数

当数值为负数的时候返回他的绝对值数值

1个,必填

ABS(Number)

ROUND

数学函数

数值出现小数点的时候,将小位数指定到对应的位数

2个,必填

ROUND(number, num_digits)

CEILING

数学函数

返回将参数

number 向上舍入(沿绝对值增大的方向)为最接近的指定基数的倍数

2个,必填

CEILING(number, significance)

FLOOR

数学函数

将参数

number 向下舍入(沿绝对值减小的方向)为最接近的 significance 的倍数

2个,必填

FLOOR(number, significance)

INTNUM

数学函数

将数字向下舍入到最接近的整数

1个,必填

INTNUM(number)

LOG

数学函数

根据指定底数返回数字的对数

2个,必填

LOG(number, base)

MOD

数学函数

返回 2

个数值组件相除的余数

2个,必填

MOD(number, divisor)

POWER

数学函数

计算出数值组件乘幂的值

2个,必填

POWER(number, power)

FIXED

数学函数

将数字舍入到指定的小数位数,以十进制数格式对该数进行格式设置,并以数字形式返回结果

2个,必填

FIXED(number, decimals)

SQRT

数学函数

取数值组件值正的平方根

1个,必填

SQRT(number)

SUM

数学函数

函数使所有以参数形式给出的数字相加并返回和

至少1个,必填

SUM(number1, [number2], ...)

PRODUCT

数学函数

数字相乘

2个,必填

PRODUCT(number1,number2)

SUMPRODUCT

数学函数

在给定的数组中,将数组间对应的元素相乘,并返回乘积之和

2个,必填

SUMPRODUCT(array1, array2)

NUMBERCOMPARE

数学函数

数值组件与数值组件2比较,大于返回1,等于返回0,小于返回-1

2个,必填

NUMBERCOMPARE(数值组件1,数值组件2)

SUBTRACT

数学函数

减法运算

2个

SUBTRACT(number1,number2)

MULTIPLY

数学函数

乘法运算

至少2个,必填

MULTIPLY(number1, [number2], ...)

DIVIDE

数学函数

除法运算

2个,必填

DIVIDE(number1,number2)

DECIMALFORMAT

数学函数

格式化带有小数的数字

第一个参数为要格式化的数字; 第二个参数为格式: 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。

  • 0 ------ 取一位整数
  • 0.00 ------ 取一位整数和两位小数
  • 00.000 ------ 取两位整数和三位小数
  • # ------ 取所有整数部分
  • #.##% ------ 以百分比方式计数,并取两位小数
  • #.#####E0 ------ 显示为科学计数法,并取五位小数
  • ,### ------ 每三位以逗号进行分隔,例如:299,792,458
  • 光速大小为每秒,###米 ------ 将格式嵌入文本

2个,必填

NOW

时间函数

返回当前时间,格式为年-月-日 时-分-秒

不可填

NOW()

TIMEFORMAT

时间函数

将时间戳转换为指定日期格式

2个,必填

TIMEFORMAT(date1,'yyyy年MM月dd日')

GETYEAR

时间函数

获取指定时间的年份

1个,必填

GETYEAR(date1)

GETMONTH

时间函数

获取指定时间的月份

1个,必填

GETMONTH(date1)

GETDATE

时间函数

获取指定时间的天数,这个月的第几天

1个,必填

GETDATE(date1)

GETWEEKDAY

时间函数

获取指定时间的星期几

1个,必填

GETWEEKDAY(date1)

COMPARE

时间函数

比较两个时间的大小,日期1 大于 日期2 返回 true,否则返回 false

2个,必填

COMPARE(date1,date2)

TIMEBETWEEN

时间函数

返回两个日期之间相差的天、月、年、小时等。

第三个参数使用不同的参数返回同的相差类型:天(DAYS)、周(WEEKS)、月(MONTHS)、年(YEARS)、小时(HOURS)、分钟(MINUTES)、秒(SECONDS)。

3个,必填

TIMEBETWEEN(date1,date2,'DAYS')

GETCHINESEZODIAC

时间函数

根据身份证号自动计算生肖

1个,必填

GETCHINESEZODIAC('549874455212544412')

GETZODIAC

时间函数

根据身份证号自动计算星座

1个,必填

GETZODIAC('549874455212544412')

QUARTER

时间函数

获取日期所在的季度

1个,必填

QUARTER(‘2022-09-15 12:34:23’)

DAYOFFSET

时间函数

日期增加或减少指定天数

2个,必填

DAYOFFSET(‘2022-09-15 12:34:23’,20)

COMPAREDATE

时间函数

比较两个日期的大小,日期参数1大于日期参数2返回 true,否则返回 false

2个,必填

COMPAREDATE('2022-09-16','2022-09-12')

DATEFORMAT

时间函数

将日期转换为指定日期格式

2个,必填

DATEFORMAT('2022-09-16','yyyy-MM-dd HH:mm:ss')

DATEPARSE

时间函数

自动识别时间格式,将日期转换为指定日期格式

2个,必填

DATEPARSE("2022-09-05T03:21:23.825Z","yyyy-MMM-dd")

PARSETIMESTAMP

时间函数

将时间戳转换为日期时间格式(yyyy-MM-dd HH:mm:ss)

1个,必填

PARSETIMESTAMP(1675612800000)

AGEOFNOW

时间函数

根据日期计算当前年龄

1个,必填

AGEOFNOW("1989-02-05")

INTERSECTI

集合函数

计算两个集合的交集

2个,必填

INTERSECTIONSET(array1,array2)

UNIONSET

集合函数

计算两个集合的并集

2个,必填

UNIONSET(array1,array2)

DIFFERENCESET

集合函数

计算两个集合的差集

2个,必填

DIFFERENCESET(array1,array2)

SUBSET

集合函数

计算第二个集合是否第一个集合的子集

2个,必填

SUBSET(array1,array2)

ARRAYGET

集合函数

返回数据集中第k个值

2个,必填

ARRAYGET(Array, k)

LARGE

集合函数

返回数据集中第k个最大值

2个,必填

LARGE(Array, k)

SMALL

集合函数

返回数据集中第k个最小值

2个,必填

SMALL(Array,k)

LISTADDALL

集合函数

将所有参数组合为一个集合返回

多个

LISTADDALL(4,5,"aaa",2,52,5)

LISTGET

集合函数

获取集合中指定索引位置的元素

2个,必填

LISTGET([4, 5, "aaa", 2, 52, 5],3)

LISTADD

集合函数

向集合中添加多个元素

2个,必填

LISTADD([4, 5, "aaa", 2, 52, 5],"bbb")

LISTRANDOM

集合函数

随机取集合中的某一元素

1个,必填

LISTRANDOM([4, 5, "aaa", 2, 52, 5])

CONTAIN

集合函数

返回参数一集合中是否包含参数二,包含返回true,不包含返回false

2个,必填

CONTAIN(["bbb",4,5,6,7],"aa")

LISTSUM

集合函数

返回集合中所有元素的累加和。

可用于表格中某列数据汇总求和运算

1个,必填

LISTSUM([4,5,6,7])

OBJLISTSUM

集合函数

返回参数1[对象数组]中对象的【某个属性】的累加和

2个,必填

OBJLISTSUM([obj1,obj2,obj3],'金额')

ARRAYJOIN

集合函数

使用间隔符将一个字符串数组连接,转为字符串

2个,必填

ARRAYJOIN(String[],"-")

ARRAYINDEXOF

集合函数

返回集合中指定元素所在位置

2个,必填

ARRAYINDEXOF([4, 5, 3, 52, 5],3)

函数的扩展

具备管理员权限的用户可以点击平台运维,进入扩展开发的菜单,选中基础函数的管理页面,可以通过界面化的方式进行扩展函数

点击 “新建”的按钮,包括函数的名称、函数的解释、函数的小标题、函数体的配置、函数输出类型、函数的参数说明等。

在线demo:app.bctools.cn

基础框架开源地址:gitee.com/software-mi…