有一個基礎資料表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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/252883.html
標籤:VB.NET
