二级BOM用料清单
1. 简介
1.1 案例简介
本文将介绍,如何搭建二级 BOM 用料清单。
1.2 应用场景
二级 BOM 适用于产品组成较为简单的生产场景,如服装、食品、日用品等,只包含二级材料的产品:
1.3 预期效果
在产品明细中输入产品名称和对应的数量,即可自动计算出所需材料及其用量,效果如下:点击体验效果
注:由于安装模板时限制单个表单数据最多为 100 条,故安装模板体验效果时,需要重新按照 BOM物料清单【2.2.2 录入数据】的步骤录入数据才能成功实现效果,否则将无法体验。
2. 设置方法
在学习之前建议安装 BOM物料清单 应用模板,本文将按照模板中的示例数据进行讲解。
2.1 表单搭建
新建「二级 BOM 用料清单」表单,字段设置如下:
字段名称 | 字段类型 |
产品明细 | 子表单 |
产品名称 | 子字段-下拉框 |
数量 | 子字段-数字 |
二级材料集合 | 子字段-单行文本 |
二级材料用量集合 | 子字段-单行文本 |
物料数 | 子字段-数字 |
数量重复 | 子字段-单行文本 |
产品数量重复 | 单行文本 |
二级材料总集合 | 单行文本 |
二级用料总行数 | 数字 |
二级材料用量集合 | 单行文本 |
二级用料 | 子表单 |
序号 | 子字段-数字 |
材料名称 | 子字段-单行文本 |
材料用量 | 子字段-数字 |
单个产品需要材料用料 | 子字段-数字 |
产品数量 | 子字段-数字 |
材料名称+用量 | 子字段-单行文本 |
材料名称去重 | 单行文本 |
行数 | 数字 |
材料名称+用量集合 | 单行文本 |
用料汇总 | 子表单 |
序号 | 子字段-数字 |
材料名称 | 子字段-单行文本 |
材料用量 | 子字段-数字 |
2.2 字段设置
2.2.1 产品明细子表单字段设置
1)选中「产品明细.产品名称」子字段,在选项中手动输入产品名称,与 BOM 物料清单 中「BOM基础表」录入的主产品相对应,无需输入物料名称:
2)选中「产品明细.二级材料集合」子字段,在「字段属性 >> 默认值」处,设置选项为「数据联动」,点击「数据联动设置」,设置内容如下:
- 联动表单:「BOM 基础表」;
- 条件设置为:「主产品」等于「产品明细-产品名称」;
- 触发联动:「产品明细-二级材料集合」字段显示「子物料集合」字段的值;
全部设置完成点击「确认」。
3)同样的方法,设置「产品明细.二级材料用量集合」子字段的数据联动规则如下:
- 联动表单:「BOM 基础表」;
- 条件设置为:「主产品」等于「产品明细-产品名称」;
- 触发联动:「产品明细-二级材料用量集合」字段显示「用量集合」字段的值;
全部设置完成点击「确认」。
4)同样的方法,设置「产品明细.物料数」子字段的数据联动规则如下:
- 联动表单:「BOM 基础表」;
- 条件设置为:「主产品」等于「产品明细-产品名称」;
- 触发联动:「产品明细-物料数」字段显示「子物料数」字段的值;
全部设置完成点击「确认」。
5)选中「产品明细.数量重复」子字段,在「字段属性 >> 默认值」处,设置默认值为「公式编辑」,点击下方「编辑公式」:
6)设置「产品明细.数量重复」字段的公式为:LEFT(REPT(CONCATENATE(TEXT(产品明细.数量),','),产品明细.物料数),LEN(REPT(CONCATENATE(TEXT(产品明细.数量),','),产品明细.物料数))-1),用于计算每种子物料的重复次数。
2.2.2 二级用料主表字段设置
同上公式设置的方法,设置如下四个字段的公式如下:
字段名称 | 公式 | 公式含义 |
产品数量重复 | TEXT(产品明细.数量重复) | 汇总「产品明细.数量重复」字段的全部文本内容 |
二级材料总集合 | TEXT(产品明细.二级材料集合) | 汇总「产品明细.二级材料集合」字段的全部文本内容 |
二级用料总行数 | COUNT(SPLIT(二级材料总集合,',')) | 计算「二级材料总集合」中包含的材料总数 |
二级材料用量集合 | TEXT(产品明细.二级材料用量集合) | 汇总「产品明细.二级材料用量集合」字段的全部文本内容 |
2.2.3 二级用料子表单字段设置
1)选中「二级用料」整个子表单,在「字段属性 >> 默认值」处,设置选项为「数据联动」,点击「数据联动设置」:
2)进入数据联动设置页面,设置内容如下:
- 联动表单:「子表单基础表」;
- 条件设置为:「总行数」等于「二级用料总行数」;
- 触发联动:
- 「二级用料」字段显示「子表单」字段的值;
- 添加「序号」子字段,显示为「序号」子字段的值;
全部设置完成点击确定。
3)同【2.2.1 产品明细子表单字段设置】中子字段公式编辑的方法,设置「二级用料」中除「序号」外其他字段的公式如下:
字段名称 | 公式 | 公式含义 |
二级用料.材料名称 | SPLIT(二级材料总集合,',')[二级用料.序号-1] | 通过逗号分割「二级材料总集合」字段,根据子表单序号填写至对应行中 |
二级用料.材料用量 | 二级用料.单个产品需要材料用料*二级用料.产品数量 | 通过单个产品所需材料用量和产品数量计算出该材料用量 |
二级用料.单个产品需要材料用料 | SPLIT(二级材料用量集合,',')[二级用料.序号-1] | 通过逗号分割「二级材料用量集合」字段,根据子表单序号填写至对应行中 |
二级用料.产品数量 | SPLIT(产品数量重复,',')[二级用料.序号-1] | 通过逗号分割「产品数量重复」字段,根据子表单序号填写至对应行中 |
二级用料.材料名称+用量 | CONCATENATE(二级用料.材料名称,二级用料.材料用量,",") | 将每行二级用料子表单的材料名称、材料用量和字符串通过 CONCATENATE 函数连接起来 |
2.2.4 用料汇总主表字段设置
同上公式编辑的方法,设置如下三个字段的公式如下:
字段名称 | 公式 | 公式含义 |
材料名称去重 | UNION(二级用料.材料名称) | 对二级用料子表单中的「材料名称」进行去重,只保留不重复的「材料名称」 |
行数 | COUNT(UNION(二级用料.材料名称)) | 计算去重后的「材料名称」数量,用于作为汇总子表单行数 |
材料名称+用量集合 | CONCATENATE(二级用料.材料名称+用量) | 将子表单中的所有材料名称和用量通过 CONCATENATE 函数连接起来 |
2.2.5 用料汇总子表单字段设置
1)选中「用料汇总」整个子表单,在「字段属性 >> 默认值」处,设置选项为「数据联动」,点击「数据联动设置」:
2)进入数据联动设置页面,设置内容如下:
- 联动表单:「子表单基础表」;
- 条件设置为:「总行数」等于「行数」;
- 触发联动:
- 「用料汇总」字段显示「子表单」字段的值;
- 添加「序号」子字段,显示为「序号」子字段的值;
全部设置完成点击确定。
3)同【2.2.1 产品明细子表单字段设置】中子字段公式编辑的方法,设置「用料汇总」中除「序号」外其他字段的公式如下:
字段名称 | 公式 | 公式含义 |
用料汇总.材料名称 | SPLIT(材料名称去重,',')[用料汇总.序号-1] | 通过逗号分割「材料名称去重」字段,根据子表单序号填写至对应行中 |
用料汇总.材料用量 | SUM(SPLIT(CONCATENATE(SPLIT(材料名称+用量集合,用料汇总.材料名称)), ",")) | 通过该行子表单的材料名称将「材料名称+用量集合」进行分割,再通过“,”字符将对应材料的用量提取出来,最后通过 SUM 函数相加即为对应的材料总用量 |
2.3 设置字段显隐规则
1)对于表单中的辅助字段,可以在「字段属性 >> 字段权限」处设置字段为不可见,仅保留如下字段可见:
- 产品明细:产品名称、数量
- 用料汇总:材料名称、材料用量
2)在「表单属性 >> 不可见字段赋值」处,设置赋值规则为「始终重新计算」:
2.4 效果演示
效果演示参见本文【1.3 预期效果】。