适用版本:v3.3.5+;

简介

我们在设计表单时,很多表单字段都需要自动计算出来,不需要手动输入时,我们可以对字段进行公式设置。能够帮助我们减少人工计算结果手动输入的的一些误差,提高填写表单的效率,减少填写内容
表单公式计算

1.公式规则操作

公式面板左侧可以选择公式所要用到的属性。一定要从左侧选择属性(蓝底),手写或者复制无效。其他函数的字段都必须来自当前业务对象属性。

2.数据类型匹配

函数运用时要注意参数数据类型和返回值数据类型,一定要对应,不对应则无法获得正确的结果。例如公式的返回值是一个字符串,则不能把这个公式写在日期控件或者数字控件中。

控件 返回数据类型
单行文本框 字符串
多行文本 字符串
数字控件 数字(包含小数位数)
单项选择 字符串
多项选择 字符串(以逗号分隔)
下拉框 字符串
下拉复选框 字符串(以逗号分隔)
日期控件 字符串(按日期格式)
富文本框 字符串(带html标签)
自动编号 字符串
上传附件 Json的字符串[{id:'xxxx',filename:'文件名'}]
选择器控件 Json格式(如:[{id:"123",name:"张三"}])仅存id格式 (存储id)绑定id 绑定的字段存id,该控件存name
关联数据 关联数据主键 字符串多选存储字符串(以逗号分隔)
地址 JSON格式的字符串格式如下:{"country":"CN","province":14,"city":1402,"district":140202, "street":"街道"}
签名 Base64的图片字符串

3.公式介绍

3.1.函数方法名大写

运用函数的时候,请用纯大写字母。函数会自动联想,正确的函数会变为紫红色。如下图:

也可以直接在"函数"面板中,点击出现,如下图所示:

3.2 运算符号

逻辑函数

AND

公式范例:

OR

公式范例:

IF

公式范例:

(1)IF函数支持多层嵌套,如下图:

60以下,为不及格;60-79,为中;80-89,为良;90以上,为优。

(2)IF应用于下拉框/单选按钮组,如下图:

(3)IF用于下拉复选框/复选框组,如下图:

1.

文本函数

处理字符串文本的一系列函数方法

1.

CONCATENATE

公式范例:

CONCATENATE(A,B,C),即返回值为ABC

字段或者函数之间,用逗号隔开。如果是字符串,需要用引号包裹起来。

EXACT

公式范例:判断比较手机号和中奖手机号是否一致,一致则返回"恭喜中奖",不一致则返回"感谢参与";

LEFT

公式范例:将编号的值,截取左边5个字符信息;

LEN

公式范例:计算文本框输入值的字符总数信息;

LOWER

公式范例:将单行文本填写的大写字母都转换为小写;

REPLACE

公式范例:将原文本填写的从第2位开始,替换4个位置的内容,替换为替代内容的信息;

REPT

公式范例:重复文本框中的信息,重复3次;

SEARCH

公式范例:获取搜索内容在原文本的开始位置;

RIGHT

公式范例:将编号填写的信息,取右边后5位的值;

SPLIT

公式范例:

TRIM

公式范例:

UPPER

公式范例:将单行文本内编写的小写字母转换大写;

MID

公式范例:举一个在身份证号中提取生日的例子:

这个函数用了一个嵌套,用了前面说的CONCATENATE连接字符串的函数。提取身份证号的第7到10位,后面接"-",提取身份证号的11、12位,接"-",最后提取身份证号的13、14位。我们看下结果:

TEXT

公式范例:将数字转换成特定格式的文本;

TEXT(date,text_format)

公式范例:将日期格式转化指定格式;

VALUE

公式范例:将文本转化为数字;

数学函数

处理数字的一系列函数方法。

AVERAGE

公式范例:算几个填写数字的平均值。

COUNT

公式范例:统计勾选复选框的数量;

MAX

公式范例:取的填写最高一次数值的信息;

MIN

公式范例:返回一组值中的最小值。

ABS

公式范例:返回数字的绝对值;

ROUND

公式范例:根据2个数字相乘,四舍五入获取2位小数,或不要小数;

CEILING

公式范例:

INT

公式范例:将数字向下舍入到最接近的整数。

MOD

公式范例:

POWER

公式范例:

PRODUCT

公式范例:数字相乘并返回乘积;

当然,也可以直接相乘,如下图:

二种效果一样,如下图:

SUM

公式范例:数字相加并返回和。

SUMPRODUCT

公式范例:主要可用于计算加权和。例如:SUMPRODUCT([1,2,3],[0.1,0.2,0.3]),相当于1_0.1+2_0.2+3*0.3=1.4;

HOUR

公式范例:返回某日期的小时数。

SECOND

公式范例:提取出"护照生效日期"字段的年月日,进行加减计算出到期时间,再通过DATE(年,月,日)转换成日期对象,放入日期控件中得到"护照到期时间"

DAYS

公式范例:返回两个日期之间的天数。

DATEDELTA

公式范例:将指定日期加/减指定天数;

WEEKNUM

公式范例:从星期日开始计算周次,如下图:

从星期一开始计算周次,如下图:

1.

UUID

UUID()

随机码生成器。可适用于随机流水号的使用场景等。

但要注意UUID()保证输出的32位字符串不会重复,不能保证从这32位字符串中截取的一部分也不重复,

具体操作案例

字符串综合运用举例

说明:在这个表单里要输入身份证号码,自动生成性别。单行文本"性别"字段的函数为:

  1. 身份证的第17位数为奇数的时候,返回"男",否则返回"女"

  1. 身份证的第17位数为1,3,5,7,9的时候,返回"男",否则返回"女"。

1.

高级函数运用举例

  1. 统计选择相同课程的人数

  1. 按日重置编号

格式:JDY年月日4位编号

  1. 按类型编号

格式:T恤为1开头的5位数,衬衫为2开头的5位数

计算时间差运用举例

说明:此用例可以用于计算两个日期之间的(年,月,日,时,分,秒)

1、时间差(年)配置
DATEDIF(DATE(变量:开始时间),DATE(变量:结束时间),"y")

2、时间差(月)配置
DATEDIF(DATE(变量:开始时间),DATE(变量:结束时间),"M")

3、时间差(日)配置
DATEDIF(DATE(变量:开始时间),DATE(变量:结束时间),"d")

4、时间差(时)配置
DATEDIF(DATE(变量:开始时间),DATE(变量:结束时间),"h")

5、时间差(分)配置
DATEDIF(DATE(变量:开始时间),DATE(变量:结束时间),"m")

6、时间差(秒)配置
DATEDIF(DATE(变量:开始时间),DATE(变量:结束时间),"s")

7、上方时间差配置后,预览效果

8、时间差(时)计算:当天打卡时长
DATEDIF(DATE(PARSE(变量:开始时间,"HH:mm:ss")),DATE(PARSE(变量:结束时间,"HH:mm:ss")),'h')

9、时间差(年)计算年龄
INT(DATEDIF(DATE(变量:开始时间),DATE(变量:结束时间),"y"))

文档更新时间: 2023-03-27 16:26   作者:admin