功能简介
计算字段可以对数值、金额、计算和日期计算,使用 + - * / ( ) 及函数进行计算,还可对有关联的数据进行计数、求和、求平均、最大值、最小值等计算。比如:
- 员工的年假天数时需要根据工作年份进行区分计算;
- 客户商机的预期金额可以根据进展阶段进行区分计算。
视频教程
设置方式
第一步:添加计算字段
创建/编辑表格,进入表单设计页,点击左侧【添加字段】,添加一个计算字段。
第二步:设置计算公式
选中刚刚添加的计算字段,在弹窗中【编辑公式】输入计算公式。
在这里,你可以对当前表格和被关联的表格中的数值、金额、计算和日期字段进行加减乘除或通过函数计算,点击链接查看如何使用关联数据数据字段;
对关联表格的数据可以在右下侧通过点选的方式设置统计方式和统计字段,进行计数、求和、求平均、最大值和最小值计算;
对参与计算的变量进行有条件的筛选,满足所有条件的数据才会被筛选出来,参与计算;
第三步:设置基本信息
选中刚刚添加的计算字段,在左侧设置字段基本信息。
计算字段支持设置单位、保留的小数位数,以及位数分隔符。
计算字段支持的函数
请参阅表格:https://sc1m.hbjump.com/sp66ueq0muent
注意事项
计算字段不能触发工作流
在后面的学习中,我们将认识到工作流。其中,修改数据能够触发工作流执行。需要注意的是,修改数据中的计算字段并不能触发工作流执行。
计算字段最多支持30个变量,无论是字段变量还是统计类变量。其中,计算字段最多支持3个统计类变量。
若要进行更多变量的计算,需要使用工作流。
字段变量:直接调取本表字段或通过关联字段调取主表的字段。
统计类变量:当我们对关联表格的数据进行计数、求和、求平均计算时,每个计算的结果就是一个统计类变量。如图所示,【求和(物资变动明细-入库数量)】就是一个聚合函数的变量。
有些情况下,我们需要在一个计算字段中计算多个聚合函数变量。
比如在计算物资库存时,物资库存=物资入库数-物资出借数+物资归还数-物资报废数 。其中就涉及到4个聚合函数的变量计算,但是计算字段无法完成3个以上的聚合函数的变量计算。
解决方案:将一个计算字段拆成多个计算字段。在上面的例子中,我们可以将物资库存拆成2个部分:
物资库存=库存增量-库存减量
其中,
库存增量=物资入库数+物资归还数
库存减量=物资出借数+物资报废数
这样就可以解决计算字段无法完成3个以上的聚合函数的变量计算带来的系统使用问题啦。
适用场景:用计算字段还是触发器?
计算字段能够方便地完成数值的计算并填入字段值中,满足自动计算的需求。但还有一些情况,我们需要用触发器完成自动计算:
1. 计算逻辑会频繁变动、且不希望修改历史数据时
例:报价单需要有一个「报价总额」字段,但报价规则会根据业务频繁变动,且新的报价规则不应该影响历史数据。
计算字段中的表达式一旦发生改动,将立即对全表的数据生效,因此历史数据的值也会发生修改,且不会留下修改记录。因此这种情况推荐使用触发器实现。
2. 需要返回文本类型数据时
计算字段只支持返回数值、日期数据,如果需要返回文本,需要使用触发器实现。
3. 需要用到 TODAY()
NOW()
等日期函数时
和触发器不同,计算字段不存在「触发」时机,因此无法使用日期函数表达「今天」「当月」等概念。涉及到根据时间动态变化时,需要用触发器实现。
4. 希望计算字段数值的变动,能够成为其它触发器的触发条件时
同上,既然不存在「触发」时机,它的值变动也就无法成为其他触发器的触发条件。如果想要实现「链式触发」的效果,建议使用触发器修改数据。伙伴云最多支持 15 层涟漪式触发,可以充分满足链式触发需求。
5. 需要控制计算字段数量时
由于计算字段对系统的性能影响较大,容易造成创建数据 / 修改数据响应缓慢的情况,因此单表计算字段个数限制为 10 个。如果需要提升性能或控制计算字段个数,可以用触发器实现相关功能。