Thursday, December 6, 2012

12:54 AM
มีเพื่อนสมาชิกถามมาเช่นเคย และก็ติดขัดเรื่องการใช้งาน portal ตามข้อมูลด้านล่างนี้ (ขออนุญาตเอามาออกอากาศนะครับ):

"ผมมาถามอีกทีนะครับ จากคราวที่แล้ว ผมได้ถามเรื่องสร้างใบ invoice ที่เป็นตาราง ซ้อนตาราง ผมทำได้แล้วนะครับ แต่มันติดปัญหาตรงที่ว่า - ปกติเราจะใช้ คำสั่ง merge field ในการสั่งให้เติมข้อมูลที่ related กันอยู่ เช่นพวก ที่อยู่ ไรประมาณนี้ใช่มั้ยครับ แต่ในคำสั่ง portal setup มันดึงเอา ตารางอีกตารางมาว่างซ้อนไว้ แต่ในตารางที่ซ้อนอยู่ ผมอยากให้ ป้อนข้อมูลอัตโนมัติด่้วย (ผมต้องใส่ product ID กับ Product Name ในตารางที่ซ้อนอยู่ด้วย) แต่ตอนนี้ที่ผมได้คือผมต้องป้อนข้อมูลเองหมด ซึ่งทำให้ ต้องนั่งไล่ดู ว่า Product ID กับ Product Name มันตรงกันมั้ย พอจะมีวิธีทำมั้ยครับ "

คำตอบ :

เราสามารถที่จะใช้งาน merge field ใน portal ด้วยก็ได้นะครับ ตรงนี้ไม่เกี่ยวข้องกัน แต่ต้องเข้าใจ concept ก่อน ในที่นี้ ผมจะยกตัวอย่าง file ให้ดูสัก file นะครับ

ผมทำการสร้าง database ที่มี 3 table คือ

- invoice สำหรับบันทึกการออก invoice
- sell สำหรับบันทึกการสั่งสินค้า
- product สำหรับเก็บข้อมูลสินค้า



ในแต่ละ table ผมกำหนดความสัมพันธ์ไว้ว่า ให้ invoice ไปสัมพันธ์กับ sell ด้วย linkid โดย sell จะเอามาแปะใน table invoice ด้วย portal ส่วน sell นั้น ก็จะไปสัมพันธ์กับ table product โดยจะทำการดึงเอาข้อมูล product name มา ทันที ที่ product id ใน table sale มันตรงกัน ดูรูปกันเลย









ส่วนที่สำคัญคือ ต้องเข้าใจการเชื่อมความสัมพันธ์กันให้ดี ดูดี ดี สำหรับการเชื่อมระหว่าง table invoice กับ sell นะครับ จะมีการ check ถูก ให้ sell ทำการสร้าง record แบบ auto ด้วย หากไม่ติ๊กตรงนี้ เราจะไม่สามารถกรอกข้อมูลเข้าไปใน portal ได้นะครับ ต้องระวังตรงนี้ให้มาก





แถมเล็กน้อย ผมสร้าง script new record เพื่อให้ linkid ให้อัตโนมัติ โดยการอ่านจาก record id ที่ไม่มีทางซ้ำกันโดยเด็ดขาด แม้จะลบ record ไป ก็ไม่นำมาใช้ใหม่





นอกนั้น ในส่วนของ layout ก็ไม่มีอะไร มากไปกว่าการตกแต่งเลยหน่ะครับ

ประเด็นหลักจริงๆ ของปัญหานี้ คือการเข้าใจการสร้างความสัมพันธ์ให้ถูกต้องหน่ะครับ ถ้าเข้าใจแล้ว ก็ไม่ได้ยากเลย อย่างไรแล้ว ก็ลอง download file ข้างล่างนี้ไปแกะดูอีกทีนะครับ ไม่มีอะไรซับซ้อนเลย

Download : portal

ใครมีปัญหาติดขัดตรงไหน ก็ถามกันเข้ามาได้นะครับ บางทีผมก็ไม่รู้จะเขียนอะไรเหมือนกัน พบกันใหม่ ปัญหาหน้าครับ



บทความอื่นๆ