SQL部分
用一步一步的方式去連
看效能問題會不會解決
======================================
大致上完成
等待整理資料作成文件 , ppt, visio繪出流程圖
=====================================
防呆 & 功能加強 開始
介面
1.切開條件篩選 與 報表呈現 兩個 Form 是否必要
2.報表 有列印, 轉 excel 功能 ( 是否列印 也會同時作轉 Excel 動作 )
3.報表 有一個 原物料需求表 View, 一個 選配物料需求表 View, 是否有分開呈現的必要
4.防呆
5.中文顯示
待續..
=======================================
mmac -> tblFmmac ( part, mark, trndate, ordno )
1. tblStock -> tblFmmac 結合 OldPartCode ( PartCode, PartRule (mmac.spec)) to tblFmmac
2. tblOrd -> tblFmmac 結合 CustOrderNo = mark+ ordno ( OrderNo ) to tblOrd
3. tblOrdDet -> tblOrd 結合 OrderNo, PdtVersion ( 成品PartCode, Qty ) to tblOrdDet
4. tblBOMPdt -> tblOrdDet 結合 PartCode, Pdtversion ( PdtKey, PdtVersion ) to tblBOMPdt
5. tblBOMProc -> tblBOMPdt 結合 PdtKey, PdtVersion ( ProcKey, PdtKey, PdtVersion, ProcNum使用數 ) to tblBOMProc
6. tblBOMPart -> tblBOMProc 結合 PdtKey, PdtVersion, ProcKey ( PartCode, PartNum/CardNum使用量)
7. -> tblStock 結合 PartCode ( OldPartCode, PartRule, Unit )
=========================================
還是很慢....可能是回圈太多
沒怎麼用JOIN
需要在試試看JOIN
=========================================
1. Order, OderDet, Pdt 撈出所有成品 PartCode, PdtKey, PdtVersion, Qty
SELECT ord.CustOrderNo,ord.OrderNo, orddet.PartCode, pdt.PdtKey, orddet.PdtVersion, orddet.Qty
FROM tblOrderDet orddet JOIN tblOrder ord ON ord.OrderNo = orddet.OrderNo
JOIN tblBOMPdt pdt ON orddet.PartCode = pdt.PdtCode AND orddet.PdtVersion = pdt.PdtVersion
WHERE ord.CustOrderNo = 'AAA0063'
2. Pdt, Proce, Part 撈出所有材料 PdtKey, PdtVersion, ProcKey, 計算PartCost
select pro.PdtKey, pro.PdtVersion, pro.ProcKey, ( pro.ProcNum *(part.PartNum / part.CardNum * 1000)) as PartCost
from tblBOMProc pro
JOIN tblBOMPdt pdt ON pdt.PdtKey = pro.PdtKey AND pdt.PdtVersion = pro.PdtVersion
JOIN tblBOMPart part On part.Prockey = pro.Prockey AND part.PdtKey = pro.PdtKey AND part.PdtVersion = pro.PdtVersion
3. 1. & 2. 透過 PdtKey, PdtVersion 作連結
SELECT '" & tblFmmac.Rows.Item(i).Item("part").trim() & "' AS OldPartCode,
PartCode, PartRule, Unit
FROM tblStock
WHERE PartRule LIKE '%" & tblFmmac.Rows.Item(i).Item("part").trim() & "]'"
4.結合 Stock 撈 Unit,
==========================================================
5. 選配 (以訂單細項的產品的 custSpec, 結合 custID 下去找)
'呼叫 CombClass 去建資料庫 (tblOrderDet JOIN Order, JOIN tblcombdet, JOIN tblStock)
'從 orderno, cdet.combcode = (ord.custId + '-' + odet.custspec)
' 去撈 品名 PartRule(兩次,預作切割), 選配料號 CombPartCode, 數量 CardNum, 單位Unit
select stock.partrule as OldPartCode ,stock.partrule as PartRule, cdet.*
from tblOrderdet odet JOIN tblorder ord on ord.orderno = odet.orderno
Join tblcombdet cdet on cdet.combcode = (ord.custId + '-' + odet.custspec)
Join tblStock stock on stock.partcode = cdet.combpartcode
WHERE ord.CustID = 'AAA'
AND odet.custspec = '0220-TIG'
'最後切第一個 OldPartCode 出來
========================================
@
因為回圈用兩個全域變數來宣告,
每次回圈跑的時候會忘了+1
跑完回圈有時候又忘了初始化=0
......應該不要設全域變數,要改寫法
@
有點邏輯上的問題,跑出的數量與預期的差太多
SQL上問題
@
也可能是說
我還沒把相同物料的需求相累加
所以變成說相同物料需求量的東西出現好幾次
應該要算"總需求量"
5. 選配 (以訂單細項的產品的 custSpec, 結合 custID 下去找)
'呼叫 CombClass 去建資料庫 (tblOrderDet JOIN Order, JOIN tblcombdet, JOIN tblStock)
'從 orderno, cdet.combcode = (ord.custId + '-' + odet.custspec)
' 去撈 品名 PartRule(兩次,預作切割), 選配料號 CombPartCode, 數量 CardNum, 單位Unit
select stock.partrule as OldPartCode ,stock.partrule as PartRule, cdet.*
from tblOrderdet odet JOIN tblorder ord on ord.orderno = odet.orderno
Join tblcombdet cdet on cdet.combcode = (ord.custId + '-' + odet.custspec)
Join tblStock stock on stock.partcode = cdet.combpartcode
WHERE ord.CustID = 'AAA'
AND odet.custspec = '0220-TIG'
'最後切第一個 OldPartCode 出來
========================================
@
因為回圈用兩個全域變數來宣告,
每次回圈跑的時候會忘了+1
跑完回圈有時候又忘了初始化=0
......應該不要設全域變數,要改寫法
@
有點邏輯上的問題,跑出的數量與預期的差太多
SQL上問題
@
也可能是說
我還沒把相同物料的需求相累加
所以變成說相同物料需求量的東西出現好幾次
應該要算"總需求量"
=====================================