根据子表删除主表数据
1. 简介
1.1 案例简介
本案例将介绍,如何通过「智能助手Pro」实现在一个表单的 子表单 字段中删除数据后,自动删除另一个表单中的主数据。
1.2 应用场景
在客户管理场景中,需要实现客户和联系人信息的自动维护。如,在「客户」表中删除某一/某些客户联系人时,能够同步删除「联系人」表中的对应联系人数据。
1.3 设计思路
1)新建「联系人」表单,用于录入所有联系人的基础信息,需包含所属客户、联系人编号字段。
2)新建「客户表」,并在其中添加子表单「联系人明细」,用于录入客户基础信息及其关联的所有联系人信息。
3)新建「智能助手Pro」,以实现删除客户联系人后,同步删除「联系人」表中的对应联系人。具体如下所示:
1.4 预期效果
1)此前,客户表中已经录入了一条 “客户编号” 为 KH0001 的客户数据,且该数据的 “联系人明细” 子表单中还记录了 3 条 “联系人编号” 分别为 LXR0001、LXR0002、LXR0003 的联系人数据。如下图所示:
2)同时,联系人表中有 3 条所属 “客户编号” 均为 KH0001,“联系人编号” 分别为 LXR0001、LXR0002、LXR0003 的数据。如下图所示:
3)则,在客户表内删除 “联系人明细” 子表单中的 2 条 “联系人编号” 分别为 LXR0002、LXR0003 的联系人数据后,联系人表中的对应数据也将被自动删除,如下图所示:
2. 表单设计
在学习之前建议安装 智能助手Pro功能案例 应用模板,本文将按照模板中的示例数据进行讲解。如下所示:
本案例需要调用 2 张表单数据,分别是:
1)客户
新建一张「客户」表单,并在其中添加子表单「联系人明细」,字段设置如下:
字段名称 | 字段类型 |
客户编号 | 流水号 |
客户名称 | 单行文本 |
客户来源 | 下拉框 |
客户状态 | 下拉框 |
客户级别 | 下拉框 |
所属行业 | 下拉框 |
客户详情 | 多行文本 |
联系人明细 | 子表单 |
联系人明细.联系人编号 | 子表单-单行文本 |
联系人明细.姓名 | 子表单-单行文本 |
联系人明细.联系方式 | 子表单-单行文本 |
联系人明细.部门 | 子表单-单行文本 |
联系人明细.职务 | 子表单-单行文本 |
2)联系人
新建一张「联系人」表单 ,字段设置如下:
字段名称 | 字段类型 |
选择所属客户 | 选择数据 |
客户编号 | 单行文本,由选择数据填充而来 |
客户名称 | 单行文本,由选择数据填充而来 |
联系人编号 | 流水号 |
联系人名称 | 单行文本 |
部门 | 单行文本 |
职务 | 单行文本 |
联系方式 | 单行文本 |
负责人 | 成员单选 |
联系人详情 | 多行文本 |
3. 设置智能助手Pro
3.1 新建智能助手Pro
完成表单设计后,直接切换至「扩展功能」处,新建一个名为「同步删除对应联系人」的「智能助手Pro」,选择触发方式为「表单触发」,触发表单为「客户表」。如下图所示:
3.2 设置触发节点
选中触发节点,添加触发动作「修改数据时」,使得在「客户」表中删除联系人后便会触发「智能助手Pro」。
3.3 删除对应联系人数据
使用 删除数据节点,根据触发数据中的客户编号及联系人编号,从「联系人」表中找到并删除相应数据。
1)在触发节点下方添加一个「删除数据」节点。如下图所示:
2)修改节点名称为「删除对应联系人数据」,并进行如下设置:
- 设置删除对象为「选择表单删除数据」,选择目标表单为「联系人」;
- 添加如下删除条件,找到需要删除的数据:
- 客户编号「等于」触发数据--客户编号
- 联系人编号「不等于任意一个」触发数据--联系人明细.联系人编号
如何理解删除条件设置?
1)在删除联系人前,「客户」表中的联系人与「联系人」表中的联系人通过 “联系人编号” 相关联。
即,客户数据的 “联系人明细” 子表单内的每个 “联系人编号” 都能对应「联系人」表中的一条记录,反之同理。
2)在「客户」表中删除某一/某些联系人后,「客户」表中被删除的联系人也就无法通过 “联系人编号” 与「联系人」表中的联系人相关联。则:
「联系人」表中的部分数据也就无法通过 “联系人编号” 找到 “联系人明细” 子表单中的对应 “联系人编号”,需要同步删除这部分数据。因此删除条件为,联系人编号「不等于任意一个」触发数据--联系人明细.联系人编号。
3.4 保存并启用
全部设置完成后,点击「保存并启用」按钮,将「智能助手Pro」投入实际使用。如下图所示:
4. 效果演示
效果参见本文【1.4 预期效果】。