Kalau BOM tingkatannya gak tentu kan ? Saya bikin benda A 5 buah.
A terdiri dari B dan C.
B terdiri dari D, E, dan F.
C terdiri dari G
Dst.., dst.
Maka kalau saya bikin A, seharusnya stok berkurang sesuai dengan kedalaman
BOM.
Bentuk tabel BOM adalah flat satu tabel dengan setiap item memiliki field
Parent, item itu menyusun item mana, atau item itu bagian dari item mana.
Anda gunakan fungsi rekursif untuk mencari parts yang parent-nya A, lalu
dari parts tersebut rekursif lagi untuk mencari anak-anak-nya. Demikian
seterusnya hingga di tingkat kedalam terakhir.
Asumsi tabel BOM anda berbentuk:
PartNo | Qty | PartParent
-------+-----+-----------
A | 1|
B | 3| A
C | 3| A
D | 2| B
E | 4! B
F | 5| C
G | 5| F
Berikut adalah contoh recursif di TSQL untuk memperoleh total parts yang
dibutuhkan. Dibutuhkan dua store procedure untuk memperoleh total jumlah
part yang digunakan. Sp_GetPartsBOM_Raw untuk memperoleh seluruh parts
melalui proses rekursi, sedang sp_GetPartsBOM untuk membuat summary total
per item. Dari sini anda bisa membawa hasil store procedure ke dalam
recordset,
mungkin dengan perintah:
Set rs = objCon.execute("sp_GetParts_BOM '" & strPartNo & "', " & intQty)
.
CREATE PROC sp_GetParts_BOM
@PartNo varchar(50)
AS
CREATE TABLE #PARTS (
PartNo varchar(50),
Qty int
)
EXEC sp_GetPartsBOM_Raw @PartNo, 1
SELECT PartNo, SUM(Qty) Qty
FROM #PARTS
GROUP BY PartNo
DROP TABLE #PARTS
CREATE PROC sp_GetPartsBOM_Raw
@PartNo varchar(50),
@Qty int
AS
DECLARE @PartNo1 varchar(50), @Qty1 int
DECLARE C_PART CURSOR LOCAL FOR
SELECT PartNo, @Qty * Qty
FROM T_BOM
WHERE PartParent = @PartNo
OPEN C_PART
FETCH NEXT FROM C_PART INTO @PartNo1, @Qty1
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT #PARTS
SELECT @PartNo1 PartNo, @Qty1 Qty
EXEC sp_GetPartsBOM_Raw @PartNo1, @Qty1
FETCH NEXT FROM C_PART INTO @PartNo1, @Qty1
END
CLOSE C_PART
DEALLOCATE C_PART
Aksan Kurdin
From: [email protected] [mailto:[EMAIL PROTECTED]
On Behalf Of ZONA
Sent: Tuesday, July 31, 2007 10:25 AM
To: [email protected]
Subject: [Programmer-VB] Pengurangan Stock Otomatis (BOM)
Saya punya stok. Misalnya:
NomorPart Stok
Part1 10 pcs
Part2 20 pcs
Part3 2 pcs
Saya memproduksi Benda. Misalnya: Benda A.
Untuk membuat Benda A ini, membutuhkan:
Part1 sebanyak 1 pcs
Part2 sebanyak 2 pcs
Lalu saya membuat benda A sebanyak 5 unit, mk part yg terpakai adalah:
Part1 1 * 5 =5
Part2 2 * 5 =10
Bagaimana caranya agar stok berkurang otomatis ketika saya membuat benda A
5 unit?
Jadi hasilnya :
Part1 5
Part2 10
Part3 2
Pakar-pakar vb mohon pencerahannya !
terimakasih sebelumnya
NB. saya menggunakan VB 6 dan sql server 7
<<image001.gif>>
<<image002.gif>>
