การคำนวณระหว่างฟอร์ม

   
ระบบใบสั่งซื้อ มีตาราง - product (มีฟิลด์ stock ด้วย)
- po_head เก็บข้อมูลใบสั่งซื้อ เช่น เลขที่,
ผู้ขาย,วันครบกำหนด
- po_dtl (มีฟิลด์ qty ด้วย) เก็บข้อมูล
รายละเอียดสินค้าที่สั่งแต่ละตัว เช่น รหัส
สินค้า, จำนวน, ราคา
* ตาราง 3 ตาราง จะลิงค์กันหมด
ส่วนฟอร์ม po ; จะใช้กริดในการเก็บรายการสินค้าที่สั่ง ไปใน
ตาราง po_dtl
* แต่มีปัญหาคือ
1. เมื่อมีการสั่งซื้อสินค้าอยากให้มีการคำนวณยอดคงเหลือไปที่
ฟอร์ม product.stock
2. ลองใช้คำสั่ง replace ใน method udload ของฟอร์ม po
มันจะคำนวณ stock ให้เฉพาะบรรทัดสุดท้ายในกริด
ตัวอย่างคำสั่ง คือ
replace all product.stock with po_dtl+product.stock

ช่วยตอบด้วยนะคะ พยายามทำหลายวิธีแล้วไม่รู้จะใช้วิธีไหนดีคะ

m
3 มิ.ย. 46 เวลา 21:11:33 น. --> 203.156.28.12,
   
   
ทำไมไปทำในกริดล่ะครับ แล้วยังไป replace ใน unload ด้วย เท่าที่ศึกษาด้วยตัวเองนะครับ การควบคุมกริดให้ทำงานได้อย่างใจนั้นค่อนข้างยาก ซึ่งลุงจมื่นเองก็แนะนำใช้กริดในกรณีดูรายละเอียด(transaction data)ของงานนั้นๆ ใช้ do..while ไม่ดีกว่าหรือครับ การควบคุมในลูปก็ง่ายไม่ยุ่งยากอะไรด้วย ส่วนเรื่องการ replace ใน unload นั้น น่าจะย้ายไปที่อื่นแทน เช่น ก่อนจะออกจากฟอร์มที่ป้อนรายละเอียด ให้มีปุ่ม Exit ประมาณนี้ แล้วตัดสต็อคตรงนี้เลย ลองทำดูนะครับ
knight2000
3 มิ.ย. 46 เวลา 23:24:38 น. --> 203.107.145.252
  
   
ตอนนี้ใช้คำสั่ง do while ไว้ใน load โดยเคลียร์ค่า qty ให้เป็น 0 ก่อนโดยการลบออก และ ที่ unload ก็ใช้ replace บวกเข้าสต็อก
แต่มีปัญหาคือ
- เวลาแก้ไขจำนวน qty เมื่อเวลา unload ฟอร์ม มันจะบวกเพิ่มเข้าไปอีก คือ ตอนแรกมีจำนวน 2 ชิ้น
ตอนหลังแก้เป็นเป็น 1ชิ้น สต็อกจะกลายเป็น 3 จริงๆ ต้องเป็น 1 ชิ้น
อย่างนี้ต้องทำอย่างไรคะ ช่วยให้คำปรึกษาด้วยคะ ขอบคุณคะ
m
4 มิ.ย. 46 เวลา 20:19:29 น. --> 203.156.28.169,
  
   
เงื่อนไขที่ลูป do...while อาจจะไม่ถูกต้อง ทำให้วนลูปแล้วเกินไปอีก 1 รอบ ผลรวมใน PO Detail จึงเกินไป 1 ชิ้น ในฟอร์ม PO Detail ในจะใช้ลูป
seek m.po_no
if found()
do while po_dtl->po_no = m.po_no .and. !eof()
......
รวมจำนวนที่สั่งซื้อ
.......
enddo
endif

หากตั้งลูปแบบนี้ ผลรวมจำนวนที่สั่งซื้อไม่ผิดพลาดแน่ๆ ผมชอบใช้ลูปแบบนี้ อาจจะใช้คำสั่ง sum แทนก็ได้นะครับ
knight2000
5 มิ.ย. 46 เวลา 0:09:55 น. --> 203.107.151.139
  
   
ขอบคุณคะ ทำได้แล้วคะ คือ
พึ่งมาพบข้อผิดพลาด ในส่วนของ qty ใน lostfocus มีคำสั่งที่เคยทดลองใส่ดูแต่ลืมลบออกคือ
replace product.stock with po_no.pty + product.stock
พอลบออกก็เลยคำนวณสต็อกถูกต้องแล้ว
ขอบคุณคะคุณ knight2000 ไม่ทราบว่ามีอีเมล์ไหมคะ เผื่อวันหลังมีข้อสงสัยจะได้เมล์ไปปรึกษา
m
5 มิ.ย. 46 เวลา 20:02:04 น. --> 203.156.26.99,
  
   
มาตั้งกระทู้ถามกันในเว็บดีกว่า จะได้หลากหลายแนวทาง และผมเองเพิ่งจะเริ่มต้นศึกษา vfp ได้ไม่นานครับ อาศัยอ่านจากเว็บนี้ ตำราอีก 2 เล่มและอ่าน help ที่มีมากับแผ่น vfp อีก 2 แผ่น แต่หากจะสอบถามเป็นการตัวส่วน ก็เมล์มาที่ minoris@mweb.co.th ครับ ไม่เฉพาะแต่คุณ m นะครับ
knight2000
6 มิ.ย. 46 เวลา 11:39:53 น. --> 203.107.209.130
  
ขอเชิญร่วมตอบคำถามครับ
 
ผู้ตอบ :
รหัสผ่าน :
รูปภาพ :
คำตอบ :