จาก ตอนที่แล้ว เราได้เพิ่มฟิลด์ใหม่บน Standard Table หรือ Base Table กันแล้ว ตอนนี้ก็ถึงเวลาที่เราจะสร้าง page extension ซึ่งเป็น new object อีกตัวของ Microsoft Dynamics 365 Business Central โดยทำหน้าที่ add ฟิลด์ใหม่ที่เราเพิ่มเข้ามา มาแสดงให้หน้าจอของ Standard Page หรือ Base Page นั่นเอง
Page Extension นั้นโดยทั่วไปจะถูกใช้สำหรับการ customization base object ซึ่งสามารถ add field, action, และ function ที่อยู่ภายใต้ base page โดยที่คุณไม่ได้แตะต้องหรือแก้ไข base object ผ่าน C/SIDE เลย
ตอนนี้เรามี field ที่ชื่อว่า Beer Origin ที่สร้างผ่าน Table Extension แล้ว ทีนี้เราก็จะมา add field ใหม่นี้บน
เริ่มต้นเหมือนเดิมคือ new file ซึ่งผมจะตั้งชื่อว่า Pag-Ext50101.ItemCard.al
จากนั้นใช้ Snippet สำหรับสร้าง code page extension
จะได้โครงสร้างของ Page Extension ออก
ขออธิบาย property หลักคร่าว ๆ ดังนี้
- Id: คือ object ID ของ new object ที่เราสร้างขึ้นมา
- MyExtension: คือ object name ของ new object ที่เราสร้างขึ้นมา
- MyTargetPage: คือ tandard page หรือ base page ของโปรแกรม D365BC
โครงสร้างของ page extension ที่ถูกสร้างโดย snippet จะ default ให้หลัก ๆ อยู่ 3 ส่วน
- layout: จะเป็นส่วนที่ใช้สำหรับ Add Field
- action: คือส่วนที่เอาไว้สำหรับเพิ่มปุ่ม (button)
- var: เป็นส่วนสำหรับประกาศตัวแปรแบบ Global
เช่นเดียวกันกับ page object คุณสามารถเพิ่ม trigger และ function ให้กับ page ได้
โปรดจำไว้ในการ Add Field เข้ามาให้กับ base page ผ่าน page extension นั้น คุณจะต้องระบุตำแหน่งที่คุณจะเพิ่มก่อนเสมอ จะไม่ได้ Add Field เข้าไปเลยเหมือน Table Extension
ซึ่งจะมี 4 options ให้คุณระบุตำแหน่งของ field ที่จะเพิ่มเข้าไปประกอบด้วย
- AddFirst
- AddLast
- AddBefore
- AddAfter
ต่อจากนี้ผมจะเพิ่มฟิลด์ Beer Orgin ต่อจากฟิลด์ Item Category ที่หน้าจอ Item Card
ที่ layout section ผมจะใช้ AddAfter ในการระบุตำแหน่งของฟิลด์ขึ้นมาก่อน โดยให้ต่อท้ายฟิลด์ Item Category Code
เสร็จเรียบร้อยแล้วก็เขียน code เพื่อเพิ่มฟิลด์ที่ต้องการเข้ามาได้เลย
เท่านี้ก็เป็นอันเรียบร้อยสำหรับการเพิ่มฟิลด์ใหม่เข้าไปที่ Standard Page ผ่าน object ใหม่ที่มีชื่อว่า Page Extension
ในบทความต่อไป เดี๋ยวเราจะมา publish code ที่เราเขียนทั้งหมดมานี้ให้กับตัวโปรแกรม Microsoft Dynamics 365 Business Central กันครับ สวัสดีครับ
แจ่มมากครับ