文/常亚东 兰倚
编辑/麦壁瑜
函数让人一听就头皮发麻——这可能是大多数人的第一反应。但是使用好函数确实可以解决很多复杂问题,让我们的系统变得高级、更灵活。
就像Excel内置的函数功能,明道云也提供了多种函数公式。搭建者在表单中为某个数值字段设置好计算公式后,用户在创建或修改记录数据时,只需输入部分参数值,该字段的值就会自动得出,无需手动计算填写,提高效率。
目前,明道云的两个地方可使用函数处理数据:
- 字段的默认值赋值
- 工作流的运算节点
支持函数类型上,明道云提供五大类型函数(数学函数、文本函数、日期函数、逻辑函数、高级函数),以及用JavaScript创造自定义函数。
场景示例
先别头疼,下面我用几个场景示例来介绍函数计算能玩出什么“花样”,让你爱上这个小功能。
日期函数:日期格式转换
使用日期函数,分别获取某个日期字段的“年”、“月”、“日”和“星期”的值,然后重新拼接组合成想要的新格式。
逻辑函数:根据逻辑条件自动判断
以考试成绩为例,我们用逻辑函数设置不同分数的等级,比如“不合格”、“良好”、“优秀”,让系统自动判断得出成绩等级。
如果不用逻辑函数,老师只能批量筛选分数范围内的学生,批量更新结果评级,效率稍低。
文本函数:识别身份证号的出生日期
根据身份证号,利用获取文本函数提取出生年、月、日,并使用拼接函数组合为日期格式。效果如图。
函数配置教学
开始使用函数计算前,我们先来了解哪些字段支持函数赋值、哪些字段支持作为函数参数:
- 支持函数赋值的字段: 只有文本、数值、金额、日期、邮箱、手机号等字段支持通过函数功能字段填充默认值,其他字段不支持。
- 支持作为函数参数的字段:文本、数值、金额、邮箱、手机、日期、单选、多选、成员、部门、检查框、地区、证件、子表、关联表。
- 不支持作为参数的字段:等级、文本组合、他表字段、公式、汇总、自动编号、富文本、级联选择、附件、大写金额、签名。
配置入口: 在表单编辑页面,选择字段后,点击右侧的动态默认值按钮,选择函数计算。
从左侧选择函数公式和字段参数,或手动编写公式函数和静态参数。
函数公式的组成
函数的套用是一个具有逻辑性而且容易出错的地方,主要是层级套用怎幺去套。一般来说,要从内到外,或者从外到内,逐级推进。函数公式一般由「函数名+参数+运算符号+参数分割符号」几个元素组成。
其中参数可以是字段值,也可以是静态值。如下图中的函数:
在实际使用时,我们不一定要用到所有元素,也可以多个函数嵌套使用。函数的具体方法可参考示例:
函数编写规则和注意事项
1.公式开头不需要写等号
上面已经写了等号,编辑公式时不需要写“=”号。
2.函数和字段参数的正确选择
- 函数方法可以从左侧点击选择,也可以手写但必须全部大写。
- 字段必须从左侧选择
3.函数类型正确选择
每个函数都有固定的结果返回类型,为字段设置默认值,必须选择和此字段类型一致的函数。例如,为数值字段设置默认值,如果选择了DATENOW(),返回的是时间,则不会有任何内容。
4.运算符号的正确书写
公式中等于的符号是 双等号:== ,不是 = ,例如: IF(单选字段==’选项1′,5,0)
5.函数参数的正确书写
例如,计算多个字段求和的SUM(字段1,字段2) 函数,函数的参数必须是数字类型。如果选择字段是日期类型就不会正确处理,结果就会为空。
参数的类型,在下方的示例中都有说明。
三类参数的使用注意事项
大部分函数都需要参数,参数的类型主要有静态值、动态值、动态和静态混合3种,输入参数时,要保证参数的正确书写,函数公式才能正确计算。
静态参数
静态参数是指:将参数写成固定值。每次计算都使用相同的值参与函数计算。
- 文本、时间类型的静态参数,首尾必须加单引号。
- 文本、时间、单选都当作是文本类型,如果参数是固定值,内容的首尾必须加英文引号(双引号也行)。
- 例1:获取2022年05月31号是周几。
-
- 例2:将手机号中的4-7位替换为**, 这是一个静态固定参数,首尾加单引号。
- 数值类型的静态参数,直接写数字
- 例如:获取手机号内容时,需要指定位数开始,直接写4即可,不用加引号。
动态参数
静态参数是指:字段值或函数结果。
- 如果参数是字段值,直接选择即可,首尾不加引号。
- 例1:求某个小数的四舍五入的值,直接选择字段即可。
-
- 例2:求多个数值字段之间的和,分别选择对应的字段即可,除了参数间的分隔符(英文逗号),无需其他符号。
- 如果参数是其他函数返回的结果,首尾不加引号。
- 例:获取当前日期的月份。
静态内容和动态内容的组合
- 如果参数是多个动态和静态内容的组合,则需要拼接,拼接的结果其实已经是文本类型,此时不需要首尾加引号。
- 例如:通过DATEADD()函数获取某个日期所在周的周一日期。用法:DATEADD( 日期,’加减时长’, 输出格式 )
- 参数“加减时长” 是一个文本类型的组合内容(加减符号+数字+单位)。
- 例如:-1d表示减去1天,+3M 表示增加3个月。由于周几是动态值,需要字段参与,因为加减字符,数字和单位需要使用CONCAT来组合拼接。用法:DATEADD(日期,CONCAT(‘-‘,WEEKDAY(日期)-1,’d’),1)
结语
总之想要用好函数,除了有简单的逻辑思维以外,还要实际使用。,量实践有助于我们建立逻辑型思维。在明道云应用市场里有一个函数应用,欢迎大家下载参透。