Skip to main content

1. 什么是子表单

一种高级的容器组件,可以在其内部添加文本、数值、日期等组件,比如在商品录入时,需要添加多条商品信息等场景可使用。

2. 适用场景

子表单多用于录入数据的时候,比如出库单、入库单、销售单,其中的商品明细就可以用子表单记录,可以根据实际需要录入的数据新增条数。
组件属性以及使用和示例请点击此处查看

3. 基础功能

3.1 排列方式

设置子表单的排列方式,默认以表格方式展示。

3.1.1 表格方式

表格 展示效果:
:主题、显示表头,仅支持在 PC 端排列方式为表格方式时才展示

3.1.2 平铺方式

平铺 效果如图:

3.2 设置新增按钮名称

新增数据的按钮名称默认为新增一项,可以自定义名称,效果如图:
设置新增按钮名称

3.3 设置删除按钮名称

设置删除按钮名称

3.4 允许新增最大条数

子表单最大条数

3.5 子表列宽

支持自定义,再长内容也不怕显示不全
自定义子表单列宽

3.6 批量导入

路径:访问表单即可看见在子表单下会有个批量导入的按钮,点击批量导入即可。(如表单开启了公开访问(免登),则表单内的子表单不支持批量导入操作) 子表单的批量导入模板字段顺序与表单设计字段顺序一致
访问页面
  • 子表数据高效录入:支持 Excel 批量导入数据
批量导入页面
导入成功之后,如图:

3.7 批量导出

  • 子表数据快速导出:
批量导出
批量导出中
批量导出成功

3.8 支持主表+子表单内容 Excel 一并导出

  • 支持主表单数据 + 子表单数据的一并导出
  • 导出新能力:
表单页面
数据详情页面
Excel 表格页面

4. 高级功能

4.1 操作列

4.1.1 新建操作列

新建操作列之后,可以点击编辑去操作绑定动作
操作列 效果如图:

4.1.2 回调函数

参考 动作设置
操作—项目-0
回调函数
JS 面板

4.1.3 定制渲染

支持 jsx
定制渲染-绑定动作 效果如图:

5. 常见问题

子表单组件需要至少保留一条数据。
您好,需要配置一个删除动作,如下图所示:
:这样操作默认是全删除,勾选批量删除目前还不支持
获取子表单内的数据用于表单校验或作为数据源调用的入参等场景参考代码:
常用于跨应用关联子表数据以及表单加载时,初始化子表单数据的业务场景。参考文档:明细关联明细
由于子表单数据无法在数据管理页内展示分析且无法导出,所以需要将子表单数据于报表页面表格内进行展示和导出。参考文档:子表单数据进行报表分析
可以在定制渲染里写上以下代码来实现。
这个是一个隐藏功能,去表单的编辑页面开启子表单的显示排序就会出现上移下移按钮,如图所示:
配置子表单内组件的自定义校验函数,遍历子表单中的所有数据,跟当前的数据来进行比对
(1)使用一个子表单组件,一个数值组件,然后将数值组件的默认值设置为 1,如图:
(2)点击子表单>>高级>>新建动作,需要创建两个动作,一个是 onAddClick 点击添加;一个是 onDelClick 点击删除,创建动作写入代码,如图:
以下代码可直接复制使用,注意:第一个括号里面输入数值组件的唯一标识,第二个括号里面输入子表单的唯一标识。可参考(3)的设置
(3)先创建一个 onAddClick 点击添加,如图:
然后将上面的代码复制过来,如下:
(4)新建一个 onDelClick 点击删除,也直接复制上面的代码即可:
然后将上一段的代码复制下来:
点击保存后,效果展示如下:
删除新增一项的数据,也会自动减少:
(1)拉取一个数值组件,在数值组件绑定动作「onChange值发生变化」
(2)在js页面复制以下代码
(3)实现效果

5.10 子表单隐藏组件获取值为 null

子表单的处理中,隐藏属性 value 值会被重新赋值,配置是 null,故使用隐藏状态的子表单对另外一个子表单赋值就会返回 null 值。
若想实现根据主表字段的值控制子表组件状态,可通过以下步骤实现:新建变量 dp2
子表单单行文本状态绑定变量 state.dp2
主表下拉单选组件绑定动作给变量 dp2 赋值状态
代码示例:
在主表成员组件绑定动作进行赋值,如下图:
代码示例:
子表单中无法插入子表组件,但可以放入其他普通组件,免费版最多可放入20个,其他版本最多可放入100,超出会导致加载性能下降,推荐做业务拆分。

5.11 如何获取子表单的数据

可以使用组件通用 API getValue 来获取子表单的数据。 代码示例:
返回示例:

5.12 如何获取子表单的行标识

可以使用子表单 API getItems 来获取子表单的行标识。 代码示例:
返回示例:

5.13 如何获取子表单指定行的数据

可以使用子表单 API getItemValue 来获取子表单指定行的数据。 代码示例:
返回示例:

5.14 子表单 onChange 时如何获取当前变更的字段

子表单数据变更时,除单元格变化引起的数据变更外,公式计算、数据联动或者外部赋值都会触发子表单的 onChange 事件,为了方便用户判断识别,可以从子表单 onChange 事件 extra 参数中来获取当前变更的字段,从 changes 参数中来获取当前变更字段的值。 代码示例:
效果:

5.15 子表单内组件变更时如何更新当前行其他字段数据

可以使用子表单 API updateItemValue 来更新子表单当前行其他字段的数据。
注意:此 API 只能使用于子表单组件事件中,不可用于子表单内组件事件中。
代码示例:
效果: 物品名称输入后,将物品名称的值赋值给当前行物品名称复制的值。