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


本页地址:http://www.foxtable.com/webhelp/topics/3365.htm