🚀 第31天:用多维表格“手搓”一个简易ERP(生产模块·领料单打印与状态控制篇)
✨ 系列第31篇|从零开始搭建标准ERP架构
👣 延续上一篇“生产用料明细自动生成”,今天我们正式进入 领料单打印与状态管理阶段
🔧 今天目标:实现“一键判断是否已生单 + 双向关联 + 公式计算 + 自定义打印”
🎯 关键点:统计字段、双向关联、公式字段、自定义打印模板
🌐 实现“生成 → 校验 → 打印”的全流程闭环!

🔁 回顾:我们是如何一步步“手搓”出这个ERP的?
在开始今天的生产领料模块之前,先带大家快速回顾整个项目的演进路径:
BOM模块 → 销售模块 → 计划模块 → 采购模块 → 仓库模块
→ 模拟一家新工厂无ERP的情况,一步一步构建企业核心业务流
昨天(第30天)完成了:
在计划模块中实现了“自制件需求 → 自动生成生产任务单”
使用按钮+自动化完成转单操作
配置统计字段实现“是否已转单”的状态同步
今天(第31天)的目标是:
判断某条生产任务是否已经生成用料明细表
添加“子件明细”双向关联字段,为打印做准备
计算“子件需求”数量(用量 × 数量)
设计并配置“生产领料单”打印模板
实现“一键打印领料单”
💡 这不是简单的数据展示,而是一个真正的“MRP执行引擎”
🏗️ 步骤一:新增“是否生单”统计字段 —— 判断是否已生成用料单
✅ 操作路径:
进入【生产订单明细表】
新建字段:是否生单
类型:统计
设置如下:

✅ 效果:
如果该生产任务在“生产用料明细表”中有记录,则返回“已转单”
否则为空或未转单
实现了“自动校验用料单是否已生成”的功能
⚠️ 注意:
“辅助判断用料生成”是我们在“生产用料明细表”中添加的一个隐藏字段,用于标识该记录是否有效
使用“去重”是为了避免重复计数(如一条任务对应多个子件)
🔧 步骤二:新增“子件明细”双向关联字段 —— 为打印做准备
✅ 操作路径:
进入【生产订单明细表】
新建字段:子件明细
类型:双向关联
来自:生产用料明细表
可关联的记录范围:指定记录 - 未关联

✅ 效果:
将“生产订单明细表”与“生产用料明细表”建立双向链接
后续可直接通过此字段调取所有子件信息
是实现“自定义打印”的关键一步
💡 为什么用“双向关联”?
它允许你在两个表之间自由跳转
支持在打印时动态拉取子件明细
提升用户体验和系统灵活性
📊 步骤三:在“生产用料明细表”中新增“子件需求”公式字段
✅ 操作路径:
进入【生产用料明细表】
新建字段:子件需求
类型:公式
公式:[@子件用量] * [@数量]

✅ 效果:
自动计算每种子件的实际需求数量
如:A2-3用量为1,生产数量为300 → 需求=300
支持后续库存扣减、领料控制等场景
📌 示例数据:
🖨️ 步骤四:设计“生产领料单”自定义打印模板
✅ 设计理念:
我们希望打印出来的领料单包含两部分内容:
上方区域:来自“生产订单明细表”的基本信息(如产品名称、数量、销售订单等)
下方区域:来自“生产用料明细表”的子件明细(包括编码、名称、属性、需求数量等)
底部区域:仓管员、物料员、审核人签字栏
✅ 操作步骤:
① 进入【打印模板】设置
在【生产订单明细表】中点击“打印”按钮
选择“新建打印模板”
命名为:生产用料明细表的打印模板
② 编辑模板布局
上方标题区(绑定生产订单明细表)

✅ 使用 @字段名 动态绑定当前记录的信息
下方明细区(绑定子件明细)

✅ 注意:
@子明细'-' 表示引用“子件明细”字段中的每一条关联记录
支持循环输出所有子件信息
可以设置“实发数量”为空,供现场填写
底部签名区

🖼️ 最终效果预览
✅ 打印结果如下图所示:
📌 内容详情:
产品编码:30003
产品名称:C
生产任务号:WK-202602001
生产数量:300
销售订单-项次:SO-00001-2
子件明细:
A2-3:300个
A3-1:300个
A3-2:600个
A3-3:150个
包含二维码(便于扫码查看原始记录)

🔄 步骤五:添加“打印领料单”按钮 —— 一键打印
✅ 操作路径:
回到【生产订单明细表】
新建字段:打印领料单
类型:按钮
执行操作:点击按钮时,触发自定义打印
触发器设置:
- 数据表:
生产订单明细表 - 字段:
打印领料单 - 打印模板:
生产用料明细表的打印模板

✅ 效果:
用户只需点击“打印领料单”按钮
即可直接生成并打印一份完整的领料单
不需要手动导出Excel或复制粘贴
📄 实际应用价值分析
| 传统方式 | 我们的设计 |
| 手工抄写领料单 | 一键生成,节省大量时间 |
| 容易遗漏或错误 | 自动从BOM提取,减少人为失误 |
| 无法追溯来源 | 每条记录都关联原始任务和BOM |
| 无电子化记录 | 所有数据可查、可导出、可审计 |
💡 核心优势在于:
数据驱动,流程闭环
主从表结构清晰,易于维护
自动化提升效率,降低出错率
支持未来扩展(如领料、报工、库存扣减)
