1. บาร์โค้ด 3 ตัวนั้นมีความสัมพันธ์กันอย่างไร ถ้าให้ผมเดา
- คุณกำลังจะบันทึกบาร์โค้ด Box Id แล้วบันทึก Tube Id เพื่อให้ระบบรู้ว่า Box Id จะมี Tube Id อะไรบ้าง ใช่หรือไม่
- 1 Box Id จะมีหลาย Tube Id ใช่หรือไม่
2. มีอักขระตำแหน่งใดหรือไม่ที่ระบุว่ามันคึอ Box id หรือ Tube Id หรือ Save ถ้ามีจะดีมากเลย เพราะให้ระบบเช็คได้เลย แต่ถ้าไม่มีก็ไม่เป็นไร เพราะ เราสามารถระบุว่ามันคืออะไรได้เลยจากขั้นตอนการทำงาน
ผมจะลองเสนอไอเดียนะครับ
-------------------------------------------------------------------------
เริ่มต้นระบบขึ้นมาจะมีหน้าจอสำหรับ Input ข้อมูลต่างๆ โดย Disabled Textbox ทุกตัวไปเลย เพราะเราจะใส่ข้อมูลโดยตัวยิงบาร์โค้ด
- เริ่มต้นจากการยิงบาร์โค้ด Box Id ก่อน ถ้ามีตัวอักขระบอกว่ามันคือ Box Id อยู่แล้วก็ให้ระบบนำบาร์โค้ดไปแสดงในช่อง Box Id ได้เลย ถ้ามีการยิงซ้ำก็เข้าไปแทนที่กันได้เลย โดยในขั้นตอนนี้ ระบบจะเอาบาร์โค้ดที่ได้ไปตรวจสอบกับฐานข้อมูลก่อน เพื่อตรวจสอบว่ามีอยู่ในระบบแล้วหรือยัง ถ้ายังก็รอรับคำสั่งตรงนี้ไปก่อน แต่ถ้ามีในระบบแล้วก็ให้แสดง Tube Id ที่เป็นของ Box Id นี้ทั้งหมดขึ้นมา อาจจะแสดงข้อมูลในรูปของตาราง (เงื่อนไขคือระบบต้องรู้ว่ามันคือ Box Id โดยอาจจะรู้ได้จาก Format ของบาร์โค้ด หรืออาจจะรู้ได้โดยการคลิกปุ่มบอกมันก็ได้ ตรงนี้ถ้ามีข้อมูลเพิ่มเติมมาจะสะดวกขึ้นครับ)
- ไม่ว่าจะมีหรือยังไม่มี Tube Id ก็ตาม... เมื่อยิงบาร์โค้ดที่เป็น Tube Id ลงไป ระบบก็จะเอาบาร์โค้ดไปเพิ่มให้กับตารางนี้ โดยอาจจะแสดงต่อๆกันลงมา ในขั้นตอนนี้ระบบก็จะตรวจสอบบาร์โค้ดที่อยู่ในฐานข้อมูลและที่อยู่บนหน้าจอ โดยที่ถ้าเจอในฐานข้อมูลระบบจะแจ้งเตือน และหยุดรอคำสั่งตอไป แต่ถ้าเจอบนหน้าจอก็อาจจะเตือนหรือไม่เตือนก็ได้ ต้องถามว่า จะมีผู้ที่ใช้ระบบพร้อมๆกันด้วยหรือไม่ เพราะต้องระวังในเรื่องของการทำงานกับหน้าจอ เพราะระบบจะไม่สามารถตรวจสอบการซ้ำกันของบาร์โค้ดที่อยู่ในหน้าจอของคนอื่นได้ แต่สามารถตรวจอสอบการซ้ำกันได้หลังจากที่ลงฐานข้อมูลไปแล้ว
- ในรายการ Tube Id ที่แสดงผลออกมาทางหน้าจอ จะสามารถลบได้เลยหากมีข้อผิดพลาด
- เมื่อตรวจสอบความถูกต้องแล้วก็จะมีปุ่มสำหรับบันทึกการทำงาน โดยระบบจะนำเอารายการที่นอกเหนือจกในฐานข้อมูลไปบันทึกลงฐานข้อมูล
-------------------------------------------------------------------------
การทำงานของระบบจะเป็นการทำงานด้วยสคริปที่อยู่ทางฝั่ง Client เสียเป็นส่วนใหญ่ (Javascript) จะมีก็แต่การตรวจสอบกับฐานข้อมูลอยู่บ้างเล็กน้อย การแสดงผลที่เป็นในรูปของตารางที่ผมแนะนำนั้น จะเป็นการ Create element ขึ้นมาบนฝั่ง Client นะครับ ไม่ใช่แสดงมาตั้งแต่ Server ก็ใช้ Javascript อีกนั่นแหละ
ที่คุณ "Tonn" สงสัยว่ามันจะลบยังไง ก็คือการใช้ Javascript สร้าง element ขึ้นมาทางฝั่ง Client เลย แล้วก็เอาข้อมูลบาร์โค้ดมาแสดงใน element ที่สร้างขึ้นมานี้ ซึ่งตรงนี้ก็จะสามารถลบได้เช่นกัน ผมเห็นตัวอย่าง การสร้าง element จากเวป Thaicreat นี่แหละครับ (ผมก็ใช้ตัวอย่างจากที่นี่เหมือนกัน) ส่วนเรื่องการตรวจสอบค่าซ้ำกัน ไม่ว่าจะอย่างไรก็ตาม ก็ต้องตรวจสอบกับฐานข้อมูลอยู่ดีครับ แต่จะเป็นการตรวจสอบเท่านั้น ไม่ได้เขียนข้อมูลลงฐานข้อมูลเลย ตรงนี้ก็สามารถใช้เทคนิคของ Ajax เข้ามาช่วยได้เลยครับ
ส่วนการตรวจสอบบนหน้าจอ ก็จะสามารถตรวจสอบได้จาก element ที่สร้างขึ้นมานั่นล่ะครับ เพราะทุก element จะมี Id กำกับเสมอ เราจึงสามารถใช้ document.getElementById('element_id').value ตรวจสอบได้เลย
สำหรับ Array มันก็สามารถใช้ได้นะครับ เช่น เมื่อยิงบาร์โค้ดแล้วให้เก็บข้อมูลลง Array 2 มิติก็ได้ (ทั้งข้อมูลที่ได้จากฐานข้อมูลและที่ได้จากหน้าจอ) แล้วก็ลูปเช็คข้อมูล แตกต่างจากด้านบนก็คือ ข้างบนเอาข้อมูลมาเก็บไว้ใน element บนหน้าจอก่อน ทั้งสองวิธีสามารถเลือกใช้ได้ตามถนัดครับ แต่ผมมองว่าไหนๆเราก็ต้องแสดงข้อมูลผ่านหน้าจออยู่แล้วก็ใช้ element เข้ามาช่วยเลยดีกว่า