子表单VS关联子表

注:

1)本文提及的均为开启了「随主数据一同填报」配置,即支持一同填报主表和关联表数据的 关联子表

2)如需从子表单切换为关联子表,并迁移所有历史数据,可参考:迁移方案

1. 简介

子表单关联子表 字段内填写的数据,均能一同展示在主表中,供查看和操作。但两者存在本质区别:

  • 子表单作为主表的一个字段,完全内嵌于主表;
  • 关联子表则是,在主表已和关联表通过 关联关系 紧密绑定的基础上,通过关联子表字段,在主表中提供了一个关联表的数据操作入口。所以,关联子表的背后实际上是一张独立的表单。

下面将从适用场景、特点等角度,详细介绍两者的差异,助您选用合适的字段类型。

2. 选用方式

2.1 适用场景及特点

参考下表了解两者的适用场景及特性,并根据实际业务需求选择合适的字段类型即可:

特性

子表单字段

关联子表字段

适用场景🌟

填写的数据只能作为主表数据的一部分,即子数据不具备独立性时,选择子表单

填写的数据可以作为主表数据的一部分,与主表数据一同填报、查看、导出、打印等

同时还具备独立性,可被其他表单单独引用时,如一条订单明细可以独立用于发货、退货等等,选择关联子表

数据独立性🌟

数据始终跟随主表数据一起使用,无法独立存在、被单独使用

每条数据可以独立存在、被单独使用,例如:

  • 被其他表单单独引用某条/某些数据
  • 每条数据可以拥有独立的流程、智能助手触发或权限管理等

操作复杂性

适合简单业务操作(如公式计算、子表单内容合并/拆分等)

适合复杂业务处理(如分批发货、合并发货等

数据量与性能

适合小数据量(通常 200 条以内)

适合大数据量(关联表中的数据条数不受限制)

2.2 场景举例

1)子表单

在「员工管理系统 >> 员工档案信息表」中,员工的多条调动经历只需跟随员工信息主数据一同被查看、使用,无需单独引用某条调用经历进行处理,即调动经历不具备独立性,选用子表单即可。

2)关联子表

在「订单管理系统 >> 订单表」中,订单详情需要随订单数据一同被查看、使用,同时出货表/付款表中又可选择单条订单详情作为独立数据处理,如分批发货、合并相同商品的订单等,即订单详情具备独立性,选择关联子表。

3. 配置对照

3.1 整体配置对照表

子表单的配置均在主表中进行。而关联子表本身只起入口作用,其背后是关联表,所以需在完成关联表设计后,再在主表中通过关联子表来访问关联表。自然,访问效果就会受到关联表和关联子表配置的共同影响,取两者交集。

在常见配置场景下,子表单及关联子表的配置对照如下表所示:

配置内容

子表单

关联子表

字段设置

例如添加子字段、设置校验、默认值等字段属性,均在主表页面内配置。

在关联表中配置,参见本文 3.2 节。

权限设置

在主表中配置。

受成员自身所拥有的关联表权限、和关联子表设置的共同影响,参见本文 3.3 节。

重复值校验

在主表中配置。

需同时配置关联子表(在主表内)和关联表,详情参见:关联子表重复值校验。

数据联动

字段联动在关联表中配置,整体数据联动需借助自定义按钮,可参见:关联子表数据联动。

主数据删除

子表单数据内嵌于主数据。删除主数据时,无需配置,会级联删除子表单数据。

关联表数据是独立存储的。删除主数据时,需借助智能助手来级联处理关联表数据,例如级联删除、清空,可参见:级联处理方案

主数据修改

若子表数据依赖于主表数据,如子字段公式/数据联动中引用了主字段,则主数据修改时,无需配置,会自动刷新相应子表单数据。

若关联表数据引用了主表数据内容,如:

  • 部分字段由主表填充而来
  • 公式/数据联动中引用了主表字段

则主数据修改时,不会更新相应关联表数据,需借助智能助手实现级联更新,详情可参见:级联处理方案

公式引用

若想在编辑子表公式时,引用主表字段内容,可参考如下配置方案:

  • 子表单:编辑子字段公式时,可直接在变量列表中选到主字段。
  • 关联子表:在关联表中,找到用来关联当前主表的关联数据字段,并配置 填充规则,把所需主字段的值填充过来。在编辑公式时,选取填充字段即可。详情参见本文 3.4 节。

显隐规则

在主表中配置,详情参见:子表单显隐规则

在关联表中配置,详情参见:字段显隐规则

如需基于主表字段内容,来控制子表字段的显隐,可参考如下配置方案:

子表数据影响主表校验

例如,仅当所有子表数据都为合格时,才可提交当前主数据:

  • 子表单:在主表内设置辅助字段及表单提交校验,来校验每条子数据,参见:合格检验
  • 关联子表:在关联表中设置 表单提交校验,便可校验每条关联表数据。且该校验在一同填报时仍会生效,继而影响主表数据的提交。

数据过滤

在子表中使用 选择数 时,想要根据当前主表内容设置 数据过滤条件。例如,根据当前填写的订单编号信息,筛选出对应的所有订单明细供选择,则设置条件时:

  • 子表单:可直接选到主表字段,或是选用被主表数据填充后的子字段(此时,使用选择数据字段时,只可选择单条数据,不可多选)
  • 关联子表:在关联表中设置选择数据字段的过滤条件时,可选关联引用字段,或是被主表填充后的关联表字段(此时,仅支持单选),详情参见:关联子表数据过滤。

3.2 字段设置

在同样场景下(例如在销售订单表中填写销售订单明细),从子表单改为关联子表的过程可理解为:把原先放置在子表单中的子字段(如产品名称、下单数量等),全都“搬”到了关联表中后续再通过关联子表来调用这些字段。

因此,如需对这些字段进行设置(如设置默认值、公式等),就需要到关联表里去操作,而不是在主表或关联子表中设置。如下图所示,销售明细子表单中的字段都搬到了「销售订单」的关联表「销售订单明细」中:

🌟 可以注意到,这种变动把原先的子字段提升为了主字段;原先内嵌的子表数据也变为了一条条独立数据。

3.3 权限设置

1)子表单
  • 操作权限 直接在主表中配置即可,权限类型包括:可编辑、可删除、可新增等;
  • 数据权限始终跟随主表数据,不具备独立数据权限,无法单独控制某条子表单数据。
2)关联子表

相较子表单,权限配置由「主表字段」提升到「独立表单」层面,成员最终拥有的字段、数据、操作权限等,为下述配置的交集,如需了解权限详情,或在配置过程中遇到权限问题,可参见:问题排查

  • 关联表中权限组权限/数据管理权限
  • 关联子表的「显示字段」及「数据操作」设置

以成员 Lucy 查看主表数据时,通过关联子表查看「订单明细表」为例,若想编辑产品名称信息,需确保「关联子表 >> 显示字段」处勾选了该字段,并在「订单明细表」的第一个权限组中有该字段的「可编辑」权限。

3.4 公式引用

若想在编辑子表公式时,引用主表字段内容。例如,在采购单中录入采购明细时,需要根据当前供应商的折扣率,自动计算每条明细的折扣后金额。

此时,可参考如下配置方案:

1)子表单

编辑子字段公式时,在变量列表中直接选取主字段即可。例如,设置「采购明细.折扣后金额」的公式为采购明细.小计*供应商折扣率。如下图所示:

2)关联子表

需要先通过关联表中关联数据字段的 填充规则 设置,把所需的主表字段值填充到关联表的对应字段中,随后在编辑关联表字段公式时,选取填充字段即可。例如:

  • 设置填充规则

在「采购明细表」中找到用来关联采购单的关联数据字段「关联采购单」,设置填充规则,把采购单中的供应商折扣率信息,填充到当前表单的「供应商折扣率」字段中。如下图所示:

  • 设置公式

选中「折扣后金额」字段,设置公式为小计*供应商折扣率即可。如下图所示:

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验