จะเขียนให้มีลูกค้าสั่งสินค้าแล้วไปตัดใน Stock ทำไง

   
คือมีอยู่ 3 เทเบิล คือ
-Products
-Customers
-Orders

ตาราง Orders กับ Customers จะสัมพันธ์กัน

ที่นี้เวลามีลูกค้าสั่ง Product รหัส 0001 กับ 0002 อย่างละ 100 ชิ้น ในสต็อกมีอย่างละ 1000 ชิ้น อยากให้พอพิมพ์ปุ๊ปมันจะลบออกให้เองเป็น 0001 มี 900 และ 0002 มี 900 ทำยังไงครับ


WBB
12 พ.ค. 46 เวลา 14:25:06 น. --> 203.107.211.112
   
   
>ตาราง Orders กับ Customers จะสัมพันธ์กัน
แล้วตาราง Orders สัมพันธ์กับ Products หรือเปล่า
แล้วตาราง Product เป็นตาราง Stock ของคุณใช่ไหม
ถ้าใช่ ก็เอา product id ใน Orders ไป seek ใน Products ถ้าเจอ ก็ตัดได้เลย คงประมาณนี้
knight2000
12 พ.ค. 46 เวลา 16:50:21 น. --> 203.107.150.14,
  
   
ใช่ครับ แต่ช่วยอธิบายละเอียดกว่านี้ได้หรือเปล่าครับ
WBB
12 พ.ค. 46 เวลา 18:03:11 น. --> 203.107.210.59,
  
   
use sumorder order tag goodsid in 1
use stock order tag goodsid in 2
sele 1
go top
do while .not. eof()
store goodsid to ugoodsid
store quantity to uquantity
sele 2
seek ugoodsid
if found() .and. stock.quantity>=uquantity
stock.quantity=stock.quantity-uquantity
endif
sele 1
skip
enddo
เอาไปใส่ไว้ใน ตอนบันทึกออเดอร์ลูกค้า
ลุงจมื่น
12 พ.ค. 46 เวลา 18:48:54 น. --> 203.113.80.8, w
  
   
สำหรับผมเห็นว่า
1. ระหว่างพิมพ์จำนวนให้เช็ดสต็อคด้วยถ้าเกินต้องเตือนก่อน
2. ถ้าพิมพ์ปุ้บตัดปั้บ คุณแน่ใจได้อย่างไรว่า กระดาษจะไม่เสียทุกครั้ง
ควรให้ Reprint ได้นะ
3.การตัดสต็อคควรมีปุ่ม ตัดโดยเฉพาะก่อนสั่งพิมพ์เมื่อแน่ใจว่าไม่มีการแก้ไขแล้ว
จิ้งจอกบูรพา
13 พ.ค. 46 เวลา 15:54:36 น. --> 203.149.42.210,
  
   
งั้นก็ช่วยอธิบายโค้ดหน่อยสิครับ
WBB
13 พ.ค. 46 เวลา 18:43:36 น. --> 203.107.203.39,
  
   
1. Prop. ใน Method ของ ValidEvent ของ Grid.txtQty พิมพ์ ดังนี้
SELECT stock
SEEK tranx.item_no
IF EOF()
REPLACE TranX.qty WITH 0
WAIT WINDOW "*** Stock code 's not found !!! ***" TIMEOUT 1
RETURN
ELSE
IF Tranx.qty>Stock.onhand
REPLACE TranX.qty WITH 0
WAIT WINDOW "*** Over Stock onhand !!! ***"+STR (Stock.onhand) TIMEOUT 1
RETURN 0
ELSE
REPLACE TranX.price WITH Stock.price
ENDIF
ENDIF
THISFORM.Refresh
3. สำหรับ ปุ่ม Click ตัดสต็อค
IF TranM.Ps=.T.
WAIT WINDOW "Update already......." TIMEOUT 1
RETURN
ENDIF
xRunno=TranM.runno
SELECT TranX
SCAN FOR runno=xRunno
xItem_no=Item_no
SELECT Stock
SEEK xItem_no
IF FOUND()
IF Item_no<>'0 '
REPLACE onhand WITH onhand-TranX.Qty
ENDIF
REPLACE TranM.Ps WITH .T.
ELSE
WAIT WINDOW " รหัสสินค้า ไม่มี !!! " TIMEOUT 1
EXIT
ENDIF
SELECT TranX
LOOP
ENDSCAN
WAIT WINDOW "*** ตัดสต็อคเรียบร้อยแล้ว***" NOWAIT
ThisForm.Refresh

ลองดัดแปลงดูครับ
จิ้งจอกบูรพา
14 พ.ค. 46 เวลา 12:00:07 น. --> 203.149.42.196,
  
   
ขอบคุณครับ
WBB
14 พ.ค. 46 เวลา 12:58:42 น. --> 203.107.209.190
  
ขอเชิญร่วมตอบคำถามครับ
 
ผู้ตอบ :
รหัสผ่าน :
รูปภาพ :
คำตอบ :