公式联动扩展体系规则
名词解释
公式&数据联动
公式: 字段的值是根据公式计算得出的。
数据联动:字段的值是根据某个字段从另一个表单中调用过来的。
字段的值只可设置公式和数据联动其中一种方式。
入口:表单设计>>字段属性>>默认值 |
---|
![]() |
扩展体系
字段可设置公式(或者数据联动),同时可设置扩展体系。
入口:表单设计>>字段属性>>功能扩展设置 |
---|
![]() |
公式链
表单不同字段之间通过公式、数据联动、扩展体系等设置产生关联,当字段A值产生变动,触发字段B被自动计算赋值,而字段B的值变动可能触发字段C的计算赋值,直到关联的字段都被计算一次,这些字段之间就形成一条公式链。
触发公式链后,公式链内的字段值会被修改,公式链外的字段值不变。
如存在表单设计,字段B设置数据联动(字段A做条件),字段C设置数据联动(字段B做条件),字段A设置扩展-数据助手修改字段D的值
公式链1:手动输入字段A的值,字段B,C,D的值均会计算出来(前提是联动结果有数据)。
公式链触发规则
手动触发
如果字段作为其他字段公式/数据联动的条件,或者字段自身设置了扩展体系,手动修改字段值,会触发公式链。
示例:字段B设置公式(B=A),手动输入A触发字段B的公式。
效果 |
---|
![]() |
默认值触发公式/数据联动
字段设置了默认值,打开新增数据页面,会自动触发该字段的公式链。
默认值不支持触发扩展。
示例:A字段设置默认值,打开新增数据页,自动触发B字段的公式和C字段的数据联动。
效果 |
---|
![]() |
扩展体系只能手动触发
字段设置扩展,只有手动修改字段的值才会触发其扩展,其他方式赋值(如默认值、数据加载、公式/数据联动、子表单Excel导入等赋值方式)不会触发字段的扩展。
示例:A字段设置扩展(数据助手-数据联动),联动结果写入字段B,手动输入A字段值触发扩展。
效果 |
---|
![]() |
扩展体系修改字段值后,会触发公式/数据联动
示例:A B C三个字段,A字段的扩展修改B字段,C字段设置数据联动(以B字段作为联动条件),当手动修改A字段的值后,触发扩展修改B字段,B字段的值变动后触发C字段的数据联动。
老版本不支持。
效果 |
---|
![]() |
公式链单次执行过程中,同一个字段只能被赋值一次
示例:存在A B字段,B字段设置公式(B=A),A字段设置公式(A=B),当手动输入A的值后,B字段的公式会被触发,A字段的公式(A=B)不会被执行。
效果 |
---|
![]() |
数据加载触发公式链
数据加载会触发赋值字段开始的公式链。
注意:子表单的数据加载,会触发子表单中所有有值字段开始的公式链。
- 新版本保留触发指定公式设置,且新增触发赋值字段相关的所有公式/数据联动,不支持触发扩展。
- 老版本设置的数据加载触发指定公式,如果表单未开启【表格快捷编辑】,则继续执行老版本逻辑;开启【表格快捷编辑】后,执行新版本逻辑。
示例:
存在字段A、B、C,D、E、F,字段设置如下:
-
字段A设置扩展(数据助手-数据联动,联动结果写入D);
-
字段B设置公式(B=A);
-
字段C设置数据联动(B做条件);
-
与字段A值无关的字段E F,字段F设置公式(F=E)。
数据加载给字段A赋值后,字段B C的公式/数据联动会执行,字段A的扩展不会执行,字段F的公式不会执行。
效果 |
---|
![]() |
子表单导入触发公式链
子表单导入:
- 触发赋值的子字段开始的公式链。
- 子表单内所有有值字段公式链。
注意:
- 老版本子表单导入触发指定公式,支持触发字段的公式/数据联动以及扩展。
- 新版本保留触发指定公式设置,且新增触发赋值字段所有相关的公式/数据联动,不支持触发扩展。
- 子表单勾选从Excel导入数据同时设置的功能扩展,不影响使用规则。
- 老版本设置的子表单导入触发指定公式,如果表单未开启【表格快捷编辑】,则继续执行老版本逻辑;开启【表格快捷编辑】后,执行新版本逻辑。
示例,子表单存在字段1、2、3 、4、5、6:
- 字段1设置扩展(数据助手-子表单联动,联动结果写入4)
- 字段2设置公式(2=1)
- 字段3设置数据联动(字段2做关联条件)
- 与1字段无关的字段5 6,字段6设置公式(6=5)
子表单导入数据,给子字段1赋值,字段2 3的公式/数据联动会执行,字段1的扩展不会执行,字段6的公式会执行。
效果 |
---|
![]() |
子表单规则
子表单设置整体联动赋值
子表单整体赋值后,会触发子表单内所有行记录内的公式/数据联动
子表单整理联动可以通过子表单自身的数据联动设置,还可以通过字段的扩展进行整体赋值。
示例,表单设计,存在普通字段A、B,子表单(子字段1、2、3):
-
子表单整体联动,A字段触发条件,联动结果写入子字段1
-
子字段2设置公式 2=1
-
子字段3设置公式 3=B
当输入A触发子表单整体联动后,所有行记录中,子字段2/3的公式会自动触发。
效果 |
---|
![]() |
子表单子字段设置单独赋值
子表单内指定行字段被赋值后,会触发对应行记录的公式/数据联动
子字段可以通过公式、数据联动、扩展来修改字段值
示例:表单谁,存在子表单(1、2、3):
- 子字段1设置扩展(数据助手-子表单联动)修改子字段2的值
- 子字段3设置公式 3=1
当输入子字段1后,当前行,子字段1的扩展和子字段3的公式会自动触发。
效果 |
---|
![]() |