InlineMRPBuilder(内联)
Foxtable使用InlineMRPBuilder类来完成内联MRP统计。
这个类的使用很简单,我们用一个完整的例子来演示。
1、打开CaseStudy目录下的示例文件: MRP统计.Table
2、选择表"物料清单A",在命令窗口执行代码:
Dim
mrp As
New
InlineMRPBuilder("统计表1")
'设置BOM表
mrp.BOM.DataTable
= DataTables("物料清单A")
mrp.BOM.ParentCol
= "上级"
mrp.BOM.MaterialCol
= "物料"
mrp.BOM.QuantityCol
= "用量"
'设置成品率表
mrp.Yield.DataTable
= DataTables("成品率")
mrp.Yield.MaterialCol
= "物料"
mrp.Yield.YieldCol=
"成品率"
'设置库存表
mrp.Stock.DataTable
= DataTables("库存")
mrp.Stock.MaterialCol
= "物料"
mrp.Stock.QuantityCol=
"库存数量"
mrp.Stock.MinimumCol
= "安全库存"
'设置生产计划
mrp.Plan.Add("P01",10)
mrp.Plan.Add("P02",8)
'生成统计结果
mrp.Build()
MainTable =
Tables("统计表1")
得到的统计结果如下图:
上述代码已经是InlineMRPBuilder的最完整用法,实际开发的时候,只需改改表名和列名,删除不需要的部分就行了,例如不考虑成品率和库存, 只需直接根据生产计划计算需求,代码为:
Dim
mrp As
New
InlineMRPBuilder("统计表1")
mrp.BOM.DataTable
= DataTables("物料清单A")
mrp.BOM.ParentCol
= "上级"
mrp.BOM.MaterialCol
= "物料"
mrp.BOM.QuantityCol
= "用量"
mrp.Plan.Add("P01",10)
mrp.Plan.Add("P02",8)
mrp.Build()
MainTable =
Tables("统计表1")
以前只有专业程序员才能搞定的多级BOM展开和计算,现在不过是单击几次鼠标或复制几行代码的事情而已。
唯一需要注意的是,和BOM、Yield和Stock三个属性不同,用于设置生产计划的Plan属性是一个字典 ,上述代码表示生产计划为"P01"10个、"P02"8个。
如果需要直接根据示例文件中的"生产计划"表的数据来设置生产计划,只需将设置生产计划部分的代码:
'设置生产计划
mrp.Plan.Add("P01",10)
mrp.Plan.Add("P02",8)
改为:
'设置生产计划
For
Each dr
As DataRow
In DataTables("生产计划").DataRows
mrp.Plan.Add(dr("产品"),
dr("数量"))
Next