版友hepingwin同志问一个关于BOM层级编码的计算问题引起了我的兴趣,兴趣不在于问题本身而在于他的数据表设计。原来我以为表现层级关系的数据对象,要么用主子表的方式,要么用层级编码的方式。在他的数据表中我看到了另外一种处理层级关系的方式,他在一个数据表中用两个字段来表现主子关系,一个字段为主,一个字段为子。也就是不管爷孙,只论父子,这是一个好办法。于是我到网上查了一下BOM设计方面的资料,原来这是BOM设计的一种方法。
那么用这样一种方式表现层级关系后,还需要进行层级的编码吗?我觉得没有必要了,因为这种处理方式已经满足了层级关系的充分必要条件。只是解决如何在这种处理方式下一系列BOM运算的问题。于是写此示例,以解其惑。
这个示例中,从订单出发,通过BOM表和库存表,计算出一个生产周期中,需要生产的产品,以及中间产品(半成品),和为满足生产而需要采购的原材料。
原示例在库存计算方面有错误,现已进行了更正,请重新下载。
示 例:
点击下载此附件
视 图: