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