วันจันทร์ที่ 12 พฤษภาคม พ.ศ. 2557

Scriptcase เล่นๆ ตอนที่ 4 DEMO ระบบบันทึกข้อมูลรถตู้โดยสารประจำทาง - เชื่อมข้อมูลตารางด้วย lookup table


ตอนที่แล้ว ได้ลองสร้าง Form app เพื่อบันทึกข้อมูลคนขับรถตู้กันไปแล้ว แต่ยังไม่เรียบร้อยในส่วนของ que หรือคิว ซึ่งเป็น field ที่อ้างอิง Primary key จากอีกตารางนึงชื่อ ques (หรือเรียกว่า Foreign Key)

ภาพจากตอนที่แล้ว เราได้แบบนี้ ใน field หรือช่องกรอกข้อมูลสุดท้ายด้านล่าง (que) ยังคงเป็นตัวเลขที่อ้างอิงมาจากตารางอื่น




คนขับคนนี้อยู่คิว id = 2 ของตารางชื่อ ques เรามาดูตาราง ques ในฐานข้อมูลกัน


คิว id=2 คือ สฎ-บางสวรรค์ เราต้องการให้ชื่อคิวไปปรากฎด้านหลัง id

เข้า SC จากนั้นเปิด form_drivers ของเราขึ้นมา แล้วเลือก Form Settings -> Folders -> que_id ซึ่งเป็น field ที่เราจะทำการเชื่อมโยงตาราง หรือใช้ lookup กัน


ด้านขวามือเลื่อนลงไปที่ Grid Lookup คลิกเลือก Use lookup to display the field description. จากนั้นคลิกที่ Create Select


จะมี modal window ขึ้นมาให้ตั้งค่าว่าเราจะเชื่อมตัวเลขที่ปรากฎใน field นี้กับตารางไหน และให้ข้อมูลใน field ใดในตารางนั้นปรากฎด้านหลังตัวเลข


จากภาพผมเลือกตารางชื่อ ques แล้วเลือก Key Field เป็น id ของตาราง ques ตัว Key Field นี้จะเป็นตัวเชื่อมโยงตารางเข้าด้วยกัน ถัดมาเป็น Field that will be show คือ Field ที่จะให้มาแสดงผล ตรงนี้ผมเลือกให้เป็น Field ชื่อ name จากนั้นคลิกเครื่องหมายถูก SC จะสร้าง query เพื่อดึงข้อมูลจาก MySQL เองดังภาพ


จากนั้นคลิก Save ด้านบน แล้วคราวนี้ลอง Run app ของเราดู


จะเห็นว่ามีชื่อมาปรากฎด้านหลัง field แล้ว
===============================================================

แต่เนื่องจาก app เป็น app สำหรับบันทึกข้อมูล ดังนั้นเราคงไม่ต้องมานั่งพิมพ์ตัวเลขเพื่อดูว่า คิว id ไหนมีชื่อว่าอะไร ดังนั้น เราจะมาเปลี่ยนจากการพิมพ์ เป็น Drop-down List กัน

กลับมาที่ SC -> form_drivers -> Form Settings -> Folders -> que_id

จากนั้นตรง Data Type เปลี่ยนให้เป็น Select


จากนั้นทำ lookup แบบเดิมเลยครับ

1


2


3

จากนั้นลอง Save ด้านบนครับ แล้วลอง Run ดู


กลายเป็นหน้าตาแบบนี้ครับ ต่อไปนี้เวลาต้องการจะบันทึกข้อมูลคิว ก็เลือกได้ตามข้อมูลที่มีในตาราง ques ครับ


ไม่มีความคิดเห็น:

แสดงความคิดเห็น