根据关键字和范围值来计算结果(自动计算纸箱装箱数量)
有一个基础资料表a,包含不同的item(货物名),不同的type(纸箱的尺寸),能装货物最大值和最小值分别是多少。
item type maxQty minQty
a1 1 20 16
a1 2 15 10
a1 3 9 6
a1 4 5 3
a2 1 18 15
a2 2 14 12
a2 3 11 8
a2 4 7 5
a3 1 12 10
a3 2 9 7
a3 3 6 4
a3 4 3 2
........
有一个订单表b,包含每个Po,货物名和货物数量
po item qty
a001 a1 44
a002 a1 15
a003 a2 100
a0004 a2 19
.......
默认每个物货,先用type为1的纸箱(尺寸最大的箱子)来装,当所有货物装完后,尾数再用type为2,3,4的箱来装,怎样算出来这些订单要用多少纸箱?
我打算用一个循环来计算type为1的纸箱(尺寸最大的)要用多少个,算出来的modQty是整除后的余数,但是不同item的minQty和maxQty不同,这个余数不能直接相加,有没有什么好办法?
dim poQty as integer , minQty as integer, maxQty as integer, CtnQty as integer, modQty integer
poqty = 0
minQty = 0
maxQty = 0
CtnQty = 0
modQty = 0
for i as integer = 0 to b.rows.count -1
a.defaultview.rowfilter = "item= '" b.rows(i)("item") "' and type = 1"
if a.defaultview.count = 1 then
poQty = b.Rows(i)("Qty")
MinQty = a.DefaultView.Item(0)("MinQty")
MaxQty = a.DefaultView.Item(0)("MaxQty")
If poQty Mod MaxQty = 0 Then
CtnQty = poQty / MaxQty
ElseIf poQty Mod MaxQty > MinQty Then
CtnQty = Math.Floor(poQty / MaxQty) + 1
modQty = poQty Mod MinQty
Else
modQty = poQty Mod MaxQty
End If
End if
next i