关联子表重复值校验

1. 简介

1.1 案例简介

本文将以订单管理为例,介绍关联子表重复值校验的设置方法,以确保在同一订单中,不会出现重复的产品。即,对于每条订单数据而言,其关联的所有订单明细数据中不会出现重复的产品。

1.2 设计思路

由 1.1 可得,此处实际上是对每个订单相关联的多条明细数据进行重复值校验。根据明细数据的录入阶段,其重复值校验也需分为如下 2 个阶段:

1)阶段一:同时填报主表和关联表数据

  • 数据录入:新增主表数据(订单)时,在关联子表中同时新增多条关联表数据(订单明细);
  • 校验方法:开启关联子表的「新增单条数据时不允许重复值」功能即可。

2)阶段二:单独填报关联表数据

  • 数据录入:在主表数据(订单)已生成的情况下,单独地新增或编辑关联表数据(订单明细);
  • 校验方法:添加辅助字段并设置字段值为 “订单名称+产品编码”,来唯一标识订单的每条明细数据,并设置该字段值「不允许重复」即可。

注:同时填报主表和关联表数据时,关联表字段的「不允许重复值」校验不生效。

1.3 预期效果

以订单管理场景为例,重复值校验效果如下:

1)录入订单数据时,若订单明细内出现相同的产品,则不允许提交。

2)在关联子表中单独新增订单明细时,若新增明细中的产品编码和已有明细中的产品编码重复,则不允许新增。

2. 表单搭建

注:在学习之前建议安装 关联子表 应用模板,本文将按照模板中的示例数据进行讲解。

本文案例需要使用如下 3 张表单:

  • 订单表:用于录入订单的基础信息,且已通过关联子表字段绑定了「订单明细表」。
  • 订单明细表:用于录入订单的明细信息,并通过关联数据字段来调用「产品信息表」的产品数据。
  • 产品信息表:用于录入产品的基础信息。

3. 设置步骤

3.1 设置订单明细表

在「订单明细表」中设置辅助字段,来唯一标识订单的每条明细数据,并进行重复值校验。

1)进入「订单明细表」的设计页面,选中用来关联「订单表」的关联数据字段「关联订单」,点击「字段属性 >> 设置填充规则」,将能够订单的唯一标识信息填充到当前表单中,此处以「订单名称」为例:

注:此处不支持选择订单中的流水号字段来作为唯一标识,因为同时填报时,订单中的流水号信息不会被填充到关联表(即订单明细)中,继而影响校验,因此建议使用其他字段来标识订单。

2)选中「关联产品」字段,点击「字段属性 >> 设置填充规则」,将产品的唯一标识信息「产品编码」填充到当前表单中。如下图所示:

3)添加一个单行文本字段并进行如下设置:

  • 重命名为「重复值校验辅助字段」;
  • 设置公式为:CONCATENATE(订单名称,产品编号);
  • 勾选「不允许重复值」并设置提示内容为:当前填报产品已下单,可直接修改下单数量;
  • 字段权限设置为:不可见。

4)在「表单属性」处将不可见字段的赋值规则改为「始终重新计算」。

3.2 设置关联子表字段

进入「订单表」的设计页面,选中关联子表字段「订单明细」,在「字段属性 >> 数据操作」处进行如下设置,确保同时填报订单和订单明细时,不会出现产品编码重复的明细数据:

  • 勾选「产品编码」作为显示字段;
  • 勾选「新增单条数据时不允许重复值」;
  • 选择不允许重复的字段为「产品编码」。

3.3 效果演示

效果演示参见本文【1.3 预期效果】。

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