如何让子表单行数自动变化?
1. 简介
1.1 案例简介
本文将介绍,如何将复选框/下拉复选框中的数据直接写入到子表单中,并根据多选的数据数量自动在子表单中增加相应的行数。
1.2 应用场景
适用于需要将复选框或者下拉复选框中的数据直接转化为子表单数据。如员工兴趣调查,产品多选等场景中。
1.3 设计思路
1)首先计算出复选一共选了几样东西:COUNT(复选)
2)然后设置子表单整体联动获取对应的行数,如图
3)最后将主表的复选通过公式拆分:SPLIT(TEXT(复选),‘,’)[子表单序号-1]
1.4 预期效果
以下拉复选框中选择多个产品为例,效果如下:
注:由于安装模板时限制单个表单数据最多为 100 条,故安装模板体验效果时,需要重新按照【2.2 「子表单行数基础表」录入数据】的步骤录入数据才能成功实现效果,否则将无法体验。
2. 操作步骤
在学习之前建议安装 子表单行数自动变化 应用模板,本文将按照模板中的示例数据进行讲解。
2.1 表单搭建
1)新建「产品选择表」,字段设置如下:
字段名称 | 字段类型 |
选择产品 | 下拉框 |
行数 | 数字 |
产品明细 | 子表单 |
序号 | 子字段-数字 |
产品 | 子字段-单行文本 |
2)新建「子表单行数基础表」,用于录入不同行数的子表单基础数据。字段设置如下所示:
字段名称 | 字段类型 |
总行数 | 数字 |
子表单 | 子表单 |
序号 | 子字段-数字 |
数字 | 子字段-数字 |
2.2 「子表单行数基础表」录入数据
1)在「子表单基础表 >> 数据管理 >> 导入」处导入附件中的示例数据:200行子表单基础表序号全集.xlsx。
2)导入数据时需确认示例数据和表单字段的关联关系如下:
2.3 设置数据联动
1)进入「产品选择表」表单,选中「产品明细」整个子表单,在「字段属性 >> 默认值」处,设置选项为「数据联动」,点击「数据联动设置」:
2)进入数据联动设置页面,设置内容如下:
- 联动表单:「子表单行数基础表」;
- 条件设置为:「总行数」等于「行数」;
- 触发联动:
- 「产品明细」字段显示「子表单」字段的值;
- 添加「序号」子字段,显示为「序号」子字段的值;
全部设置完成点击「确认」。
2.4 设置公式
2.4.1 「行数」公式设置
1)选中「行数」字段,在「字段属性 >> 默认值」处,设置默认值为「公式编辑」,点击下方「编辑公式」:
2)在公式编辑页面,设置「行数」字段的公式如下:
COUNT(选择产品)
2.4.2 「产品」公式设置
1)选中子字段「产品」,在「字段属性 >> 默认值」处,设置默认值为「公式编辑」,点击下方「编辑公式」:
2)在公式编辑页面,设置「产品」字段的公式如下:
SPLIT(TEXT(选择产品),",")[产品明细.序号-1]
2.5 取消可见权限
由于表单中的「行数」为辅助字段,可取消该字段的可见权限。点击「行数」,在「字段属性 >> 字段权限」处取消勾选字段的「可见」、「可编辑」权限,设置其为不可见:
2.6 效果演示
效果参见本文【1.4 预期效果】。