Private Sub GetBomList() Dim mBomTop As Collection '这里保存了顶级产成品 Dim i As Integer Dim j As Integer Dim m As cBomReturnValue Dim mLast As cBomValue Dim bFind As Boolean
Set mBomTop = New Collection
'装入顶级产成品
LoadBomTop mBomTop
'对顶级产品进行下级的判断
For i = 1 To mBomTop.Count '最后一个参数为1,表示一个单位的产成品 Call CalcNextBom(mBomTop.Item(i), mBomTop.Item(i), "1") Next i
For i = 1 To mBomReturn.Count '处理一下最终结果,如果没有在Collection里面发现相同的AssBom及BomPoint,则新增加一个,如果已发现,仅只是数量相加 Set m = mBomReturn(i)
'查找是否已加入 bFind = False For j = 1 To mBomReturnLast.Count Set mLast = mBomReturnLast(j)
If Trim(mLast.AssBom) = Trim(m.AssBom) And Trim(mLast.BomPoint) = Trim(m.BomPoint) Then '如果发现有相同的,则加入相关数字 mLast.Quantity = mLast.Quantity + CalcExpression(m.Expression) bFind = True End If
Next j
If bFind = False Then '如果没有找到 Set mLast = New cBomValue mLast.AssBom = Trim(m.AssBom