子表单VS关联子表
1. 简介
- 子表单作为主表的一个字段,完全内嵌于主表;
- 关联子表则是,在主表已和关联表通过 关联关系 紧密绑定的基础上,通过关联子表字段,在主表中提供了一个关联表的数据操作入口。所以,关联子表的背后实际上是一张独立的表单。
下面将从适用场景、特点等角度,详细介绍两者的差异,助您选用合适的字段类型。
2. 选用方式
2.1 适用场景及特点
参考下表了解两者的适用场景及特性,并根据实际业务需求选择合适的字段类型即可:
特性 | 子表单字段 | 关联子表字段 |
适用场景🌟 | 填写的数据只能作为主表数据的一部分,即子数据不具备独立性时,选择子表单 | 填写的数据可以作为主表数据的一部分,与主表数据一同填报、查看、导出、打印等 同时还具备独立性,可被其他表单单独引用时,如一条订单明细可以独立用于发货、退货等等,选择关联子表 |
数据独立性🌟 | 数据始终跟随主表数据一起使用,无法独立存在、被单独使用 | 每条数据可以独立存在、被单独使用,例如:
|
操作复杂性 | 适合简单业务操作(如公式计算、子表单内容合并/拆分等) | 适合复杂业务处理(如分批发货、合并发货等) |
数据量与性能 | 适合小数据量(通常 200 条以内) | 适合大数据量(关联表中的数据条数不受限制) |
2.2 场景举例
1)子表单
在「员工管理系统 >> 员工档案信息表」中,员工的多条调动经历只需跟随员工信息主数据一同被查看、使用,无需单独引用某条调用经历进行处理,即调动经历不具备独立性,选用子表单即可。
2)关联子表
在「订单管理系统 >> 订单表」中,订单详情需要随订单数据一同被查看、使用,同时出货表/付款表中又可选择单条订单详情作为独立数据处理,如分批发货、合并相同商品的订单等,即订单详情具备独立性,选择关联子表。
3. 配置对照
3.1 整体配置对照表
子表单的配置均在主表中进行。而关联子表本身只起入口作用,其背后是关联表,所以需在完成关联表设计后,再在主表中通过关联子表来访问关联表。自然,访问效果就会受到关联表和关联子表配置的共同影响,取两者交集。
在常见配置场景下,子表单及关联子表的配置对照如下表所示:
配置内容 | 子表单 | 关联子表 |
字段设置 | 例如添加子字段、设置校验、默认值等字段属性,均在主表页面内配置。 | 在关联表中配置,参见本文 3.2 节。 |
权限设置 | 在主表中配置。 | 受成员自身所拥有的关联表权限、和关联子表设置的共同影响,参见本文 3.3 节。 |
重复值校验 | 在主表中配置。 | 需同时配置关联子表(在主表内)和关联表,详情参见:关联子表重复值校验。 |
数据联动 | 字段联动在关联表中配置,整体数据联动需借助自定义按钮,可参见:关联子表数据联动。 | |
主数据删除 | 子表单数据内嵌于主数据。删除主数据时,无需配置,会级联删除子表单数据。 | 关联表数据是独立存储的。删除主数据时,需借助智能助手来级联处理关联表数据,例如级联删除、清空,可参见:级联处理方案。 |
主数据修改 | 若子表数据依赖于主表数据,如子字段公式/数据联动中引用了主字段,则主数据修改时,无需配置,会自动刷新相应子表单数据。 | 若关联表数据引用了主表数据内容,如:
则主数据修改时,不会更新相应关联表数据,需借助智能助手实现级联更新,详情可参见:级联处理方案。 |
公式引用 | 若想在编辑子表公式时,引用主表字段内容,可参考如下配置方案:
| |
显隐规则 | 在主表中配置,详情参见:子表单显隐规则。 | 在关联表中配置,详情参见:字段显隐规则。 |
如需基于主表字段内容,来控制子表字段的显隐,可参考如下配置方案:
| ||
子表数据影响主表校验 | 例如,仅当所有子表数据都为合格时,才可提交当前主数据: | |
数据过滤 |
|
3.2 字段设置
在同样场景下(例如在销售订单表中填写销售订单明细),从子表单改为关联子表的过程可理解为:把原先放置在子表单中的子字段(如产品名称、下单数量等),全都“搬”到了关联表中,后续再通过关联子表来调用这些字段。
因此,如需对这些字段进行设置(如设置默认值、公式等),就需要到关联表里去操作,而不是在主表或关联子表中设置。如下图所示,销售明细子表单中的字段都搬到了「销售订单」的关联表「销售订单明细」中:
🌟 可以注意到,这种变动把原先的子字段提升为了主字段;原先内嵌的子表数据也变为了一条条独立数据。
3.3 权限设置
1)子表单
- 操作权限 直接在主表中配置即可,权限类型包括:可编辑、可删除、可新增等;
- 数据权限始终跟随主表数据,不具备独立数据权限,无法单独控制某条子表单数据。
2)关联子表
相较子表单,权限配置由「主表字段」提升到「独立表单」层面,成员最终拥有的字段、数据、操作权限等,为下述配置的交集,如需了解权限详情,或在配置过程中遇到权限问题,可参见:问题排查。
- 关联表中权限组权限/数据管理权限
- 关联子表的「显示字段」及「数据操作」设置
以成员 Lucy 查看主表数据时,通过关联子表查看「订单明细表」为例,若想编辑产品名称信息,需确保「关联子表 >> 显示字段」处勾选了该字段,并在「订单明细表」的第一个权限组中有该字段的「可编辑」权限。
3.4 公式引用
若想在编辑子表公式时,引用主表字段内容。例如,在采购单中录入采购明细时,需要根据当前供应商的折扣率,自动计算每条明细的折扣后金额。
此时,可参考如下配置方案:
1)子表单
编辑子字段公式时,在变量列表中直接选取主字段即可。例如,设置「采购明细.折扣后金额」的公式为采购明细.小计*供应商折扣率。如下图所示:
2)关联子表
需要先通过关联表中关联数据字段的 填充规则 设置,把所需的主表字段值填充到关联表的对应字段中,随后在编辑关联表字段公式时,选取填充字段即可。例如:
- 设置填充规则
在「采购明细表」中找到用来关联采购单的关联数据字段「关联采购单」,设置填充规则,把采购单中的供应商折扣率信息,填充到当前表单的「供应商折扣率」字段中。如下图所示:
- 设置公式
选中「折扣后金额」字段,设置公式为小计*供应商折扣率即可。如下图所示: