子表单赋值规则
1. 简介
在修改、新增目标表单数据时,可以使用子表单字段进行赋值,但需要遵循以下赋值规则。本文以「表单1」作为目标表单、「表单2」作为赋值数据源,来讲解以下规则。
注:
1)在阅读本文前,请先参考【新手入门指南 5.基础词汇】了解什么是单值、多值数据源/字段。
2)下文所提及的「同一来源的多值字段」,有如下三种情况:
- 单条数据的一个子表单为同一个多值来源
- 多条数据的所有主字段为同一个多值来源
- 多条数据的一个子表单为同一个多值来源
3)在以下场景中,修改数据节点会修改多条数据:
- 修改对象为 「选择节点修改数据」,且所选节点存储了多条数据,如查询多条数据、新增多条数据。
- 修改对象为 「选择表单修改数据」时,会从目标表单中过滤出 0~N 条数据供修改,统一视为多条数据处理。
2. 新增数据时
2.1 该设置会和已经设置的部分字段冲突
当目标表单中同时包含主、子字段,且使用了多值字段进行赋值时,需要确保对所有主字段或同一子表单字段的赋值设置中使用到的所有多值字段,来源相同。具体如下:
1)赋值主字段
如,使用「单值数据源的子表字段」对「目标表单的主字段」进行赋值时,若某一单值数据源中有多个子表单,或者有多个含子表单的单值数据源,仅可使用一个单值数据源的同一个子表单内的字段对所有主字段进行赋值。
若在设置字段值时,更换了子表单进行赋值,则之前的子表单赋值设置会被清除,如下图所示:
2)赋值子字段
如,使用「某一单值数据源的子表单字段」对「目标表单的某一子表单字段」进行赋值后,目标表单中该子表单内的其他子字段不能使用该单值数据源中的其他子表单字段,或是其他单值数据源中的子表单字段进行赋值。
若在设置字段值时,更换了子表单进行赋值,则之前的子表单赋值设置会被清除,如下图所示:
2.2 主字段和子字段的配置冲突
当目标表单中同时包含主、子字段时,在如下配置场景中,主字段和子字段的赋值配置会发生冲突。
1)主、子字段不能同时使用多值字段进行赋值
- 使用「多值数据源的主字段」对子字段进行赋值后,不可再使用「多值数据源的主字段」对主字段进行赋值:
- 使用「单值数据源的子表字段」对任意一个子表单字段进行赋值后,不可再使用「单值数据源的子表字段」对所有主字段进行赋值。
2)使用「多值数据源的子表字段」对子字段赋值时
在使用了「多值数据源的主字段」对一个主字段进行赋值后,才可使用「同一多值数据源的子表字段」对子字段赋值。如果在进行上述配置后,取消了使用「多值数据源的主字段」对主字段的赋值设置,则会发生冲突。
3. 修改数据时
3.1 只支持修改同一个子表单的字段
当目标表单包含多个子表单时,一个修改数据节点,最多支持修改其中一个子表单的数据。否则,在添加第二个子表单的字段时,之前的子表单赋值设置会被清除,如下图所示:
3.2 主字段和子字段的配置冲突
当同时修改目标表单的主、子字段时,在如下配置场景中,主字段和子字段的配置会发生冲突。
- 主、子字段不能同时使用「数据源中的子表单字段」进行赋值:
- 使用「数据源中的子表单字段」对「目标表单的主字段」赋值后,将不能再修改任意子字段:
- 修改多条数据的主字段时,若使用了「多值数据源的主字段」进行赋值,则不能再修改任意子字段:
3.3 使用多值字段进行赋值时
3.3.1 赋值规则
当修改方式为「修改数据」,且使用了多值字段进行赋值时,需确保对多条数据的所有主字段或同一子表单字段的修改赋值设置中使用的所有多值字段,来源相同。
同理,修改方式为「修改或新增」时,需确保对多条数据的所有主字段或同一子表单字段的新增/修改赋值,匹配关系/修改条件设置中使用的所有多值字段,来源相同。
3.3.2 具体说明
本节以「修改或新增」为例,对赋值规则进行讲解。具体如下:
- 修改多值数据源的主字段
例如,在使用「某个单值数据源的子表字段」对一个主字段进行修改赋值后,修改/新增赋值,以及匹配关系/修改条件设置中的主字段,仅可使用该单值数据源的同一个子表单字段,或是其他单值字段进行赋值。
同理,使用「多值数据源的主字段」对一个主字段进行修改赋值后,仅可使用同一多值数据源的主字段进行赋值。
- 修改单值数据源的子字段时
例如,在使用「多值数据源的主字段」对一个子表单字段进行修改赋值后,修改/新增赋值,以及匹配关系/修改条件设置中的该子表单的其他子字段,仅可使用该同一多值数据源的主字段,或是其他单值字段进行赋值。
同理,使用「某个单值数据源的子表字段」对一个子表单字段进行修改赋值后,仅可使该单值数据源的同一个子表单字段进行赋值。
3.3.3 报错内容
报错内容 | 描述 |
该设置会和已经设置的部分字段冲突 | 在设置修改字段值,或新增字段值时,使用了不同来源的多值字段,与 3.3.1 节的赋值规则冲突,出现弹窗报错。 例如,使用「子表单a.子字段a」对「主字段a」进行修改赋值后,使用了「子表单b.子字段a」对「主字段b」进行赋值。 |
修改和新增赋值发生冲突 | 此前,在修改/新增赋值,以及匹配关系/修改条件设置中,均使用了同一来源的多值字段。随后,改用其他来源的多值字段,进行修改赋值。与 3.3.1 节的赋值规则冲突,出现弹窗报错。 例如,使用了「查询多条数据 1 的主字段」进行赋值/匹配/修改条件设置,随后,在修改赋值中,改用「查询多条数据 2 的主字段」对「主字段a」进行赋值。 |