默认值赋值方式3——函数计算


像Excel中的函数功能,系统提供了多种处理数据的函数公式。表单中为某个字段设置好计算公式后,用户在创建记录或修改记录数据时,可以使该字段的值自动计算出来,不需要再手动填写,提高效率。

支持五大类型的函数:数学函数文本函数日期函数逻辑函数高级函数

场景示例

  • 1、利用日期函数,将日期字段并转换为其他日期格式

    分别获取日期年、月、日和星期的数值,然后重新拼接组合新的格式。

  • 2、通过逻辑函数得出不同的结果

    如果字段的内容是根据其他字段的内容不同结果也不同,则可以使用逻辑函数。

  • 3、通过文本函数,识别出身份证号中的出生日期

    根据身份证号,利用获取文本函数提取出生年、月、日,并使用拼接函数组合为日期格式。效果:

配置入口

支持函数赋值的字段: 只有文本、数值、金额、日期、邮箱、手机号等字段支持通过函数功能字段填充默认值,其他字段不支持。

支持作为函数参数的字段:文本、数值、金额、邮箱、手机、日期、单选、多选、成员、部门、检查框、地区、证件、子表、关联表。

  • 不支持作为参数的字段:等级、文本组合、他表字段、公式、汇总、自动编号、富文本、级联选择、附件、大写金额、签名。

配置入口: 在表单编辑页面,选择字段后,点击右侧的动态默认值按钮,选择函数计算。

从左侧选择函数公式和字段参数,或手动编写公式函数和静态参数。

函数公式的组成

函数公式一般由 函数名+参数+运算符号+参数分割符号 几个元素组成。

其中参数可以是字段值,也可以是静态值。

如下图中的函数:

在实际使用时,并非用到以上所有元素,也可以多个函数嵌套使用。函数的具体方法可参考示例,

函数编写规则和注意事项

1、公式开头不需要写等号

上面已经写了等号,编辑公式时不需要写=号。

2、函数和字段参数的正确选择

  • 函数方法可以从左侧点击选择,也可以手写但必须全部大写。

  • 字段必须从左侧选择

3、函数类型正确选择

每个函数都有固定的结果返回类型,为字段设置默认值,必须选择和此字段类型一致的函数。

例如,为数值字段设置默认值,如果选择了DATENOW(),返回的是时间,则不会有任何内容。

4、运算符号的正确书写

大于 等于 小于 大于等于 小于等于 不等于
符号 + - * / > == < >= <= !=
公式中等于的符号是 双等号:== ,不是 =

5、函数参数的正确书写

例如,计算多个字段求和的SUM(字段1,字段2) 函数,函数的参数必须是数字类型,如果选择字段是日期类型就不会正确处理,结果就会为空。

参数的类型,在下方的示例中都有说明

大部分函数都需要参数,参数的类型主要有静态值、动态值、动态和静态混合3种,输入参数时,要保证参数的正确书写,函数公式才能正确计算。

1)静态参数

静态参数是指,将参数写成固定值,每次计算都使用相同的值参与函数计算。

  • 文本、时间类型的静态参数,首尾必须加单引号

    文本、时间、单选都当作是文本类型,如果参数是固定值,内容的首尾必须加英文引号(双引号也行)

    例1:获取2021年10月11号是周几

    例2:将手机号中的4-7位替换为**, 这是一个静态固定参数,首尾加单引号。

  • 数值类型的静态参数,直接写数字

    例如,获取手机号内容时,需要指定位数开始,直接写4即可,不用加引号。

2)动态参数(字段值或函数结果)

  • 如果参数是字段值,直接选择即可,首尾不加引号。

    例1:求某个小数的四舍五入的值,直接选择字段即可。

    例2:求多个数值字段之间的和,分别选择对应的字段即可,除了参数间的分隔符(英文逗号),无需其他符号。

  • 如果参数是其他函数返回的结果,首尾不加引号。

    例:获取当前日期的月份。

3)静态内容和动态内容的组合

如果参数是多个动态和静态内容的组合,则需要拼接,拼接的结果其实已经是文本类型,此时不需要首尾加引号

例如,通过DATEADD()函数获取某个日期所在周的周一日期。

DATEADD函数的功能是为某个日期字段增加减少一段时长得到新的日期, 我们通过这个函数得到一个日期的当周的周一的日期。

函数用法:DATEADD( 日期,'加减时长', 输出格式 )

参数“加减时长” 是一个文本类型的组合内容(加减符合+数字+单位),如:-1d表示减去1天,+3M 表示增加3个月。由于周几是动态值,需要字段段参与,因为加减字符,数字和单位需要使用CONCAT来组合拼接。

  • 写法:DATEADD(日期,CONCAT('-',WEEKDAY(日期)-1,'d'),1)

例如,日期是周4,代入后,公式简化为 DATEADD(日期,'-3d',1)

6、函数详解和示例

results matching ""

    No results matching ""