天天看点

JVS开源框架系列:函数公式说明「含软开企服的开源地址」

 JVS项目简介

JVS是面向软件开发团队可以快速实现应用的基础开发框架,采用微服务分布式框架,提供丰富的基础功能,集成众多业务引擎,它灵活性强,界面化配置对开发者友好,底层容器化构建,集合持续化构建。

项目仓库:https://gitee.com/software-minister/jvs

函数公式使用场景介绍

在填写表单或修改表单数据时,可以使该字段的值根据公式自动计算出来,不需要再手动填写。

目前一共支持 96 种函数,函数的灵活应用,对于数据收集有很多作用:

(1)可以提高填写表单的效率,将一些数据自动计算出来,减少需要填写的内容

如,分数在 90 以上时等级为 A,否则为 B。那么在输入分数之后,等级是 A 或 B 就能根据公式自动判断出来。

(2)可以减少错误

如,当前库存总数量=入库数量-已出库数量。那么在入库数量、已出库数量输入之后,当前库存总数量就能根据公式自动计算出来,避免手工计算出错。

函数公式设置

目前基本上所有的组件都已经支持编辑公式。

路径:选择画布中的组件 >> 属性配置面板 >>事件 >> 公式设置 >>配置

JVS开源框架系列:函数公式说明「含软开企服的开源地址」
JVS开源框架系列:函数公式说明「含软开企服的开源地址」

编辑

JVS开源框架系列:函数公式说明「含软开企服的开源地址」
JVS开源框架系列:函数公式说明「含软开企服的开源地址」

编辑

参与来源与表单携带过来的数据、系统底层提供的全局数据等,配置方式类excel的函数配置。

公式使用的场景

公式的组成

公式通常由组件、函数、运算符和标点符号组成

所有的字段,实际上都有一个内置的唯一标识,而所能看见的组件名称,也仅仅是一个显示名称。当公式需要将字段值作为变量时,手动输入或复制粘贴都是无效的(当前页面的公式可以拷贝给当前页面使用)

因为组件名可以重复,如果需要在公式中插入组件,应在字段列表中点击该组件,而不是手动输入组件名称。

公式内所有出现的符号,都需要在英文状态下输入

公式规则

在当前/所有表单字段中选择字段

公式所要用到的字段,绝大多数情况下是从 当前表单字段 中选择

只有 业务关联规则的函数会用到 所有表单字段

提醒:从当前表单字段中选择的字段是蓝色的,从所有表单字段中选择的字段是绿色的

运算符号

公式中,支持基本的运算操作符 +、-、*、/

+ - * /

注:JVS公式中,等于逻辑应该用 EQ() ,而不是 = 。

公式概览(部分公式计划中)

函数 函数分类 说明 说明 上手实例
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(字段)
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个,必填 REPLACE(oldtext, startnum, numchars, newtext)
REPT 文本函数 将文本重复指定次数 2个,必填 REPT(text, number_times)
SEARCH 文本函数 在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号,该编号从第二个文本字符串的第一个字符算起。返回 0 则表示未查找到 3个,前2个必填 SEARCH(findtext,withintext,[start_num])
MID 文本函数 截取文本的有效部分内容 3个,必填 MID(text,start_index,end_index)
ISEMPTY 文本函数 判断值是否为空字符串、空对象或者空数组 1个,必填 ISEMPTY(text)
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)
NOW 时间函数 自此日期起的1970年1月1日,00:00:00 GMT以来的毫秒数。 不可填 NOW()
INTERSECTIONSET 集合函数 计算两个集合的交集 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)
USER 人员类

无参数模式:User()

获取当前登录人;

1个,选填 USER()

有参数模式:User(level)

当前登录人的主管, level 是 获取当前登录人的主管

USER([level])
USERFIELD 人员类 人员搜索框需要联动带出一些基本信息 2个,必填

USERFIELD(

成员 ,"userId"),USERFIELD( 成员 ,"name")

GETUSERNAME 人员类 获取当前登录人昵称 不可填 GETUSERNAME()
EMPLOYEE 人员类 返回对应的人员信息对象数组(即人员组件底层的值) 1个,必填 EMPLOYEE(array1)
DIRECTOR 人员类 获取当前登陆人的主管名称 1个,必填 DIRECTOR(level)
LOGINUSER 人员类 登录人 不可填 LOGINUSER()
LOGINUSERWORKNO 人员类 获取当前登录人员工唯一ID(员工UserID) 不可填 LOGINUSERWORKNO()
DEPTNAME 部门类 获取指定人所在部门名称 1个,必填 DEPTNAME(userId)
COUNT 通用类 统计指定表单提交的数据总数 至少1个,必填