ปรับแต่ง Layout รายงานบน Business Central เองด้วย Custom Report Layout

Spread the love

สวัสดีครับ ในบทความนี้ก็จะพูดถึงการแก้ไข Report Layout บน Dynamics 365 Business Central ด้วยตัวคุณเอง โดยไม่ต้องเขียน code ซักตัว และไม่ต้องทำ deployment ด้วยฟังก์ชั่นที่มีชื่อว่า Custom Report Layout

custom-report-layouts-business-central

บทความนี้ประกอบไปด้วยหัวข้อดังนี้

Custom Report Layouts คืออะไร

หนึ่งในฟังก์ชั่นการใช้งานที่ถูกใช้งานมากที่สุดในระบบ ERP ก็คือ การออกรายงาน หรือ Print Report นั่นเอง แน่นอนว่า ไม่ว่าคุณจะใช้งานใน Module ไหนไม่ว่าจะเป็น Sales, Purchase, Inventory, Account, หรือ Production แน่นอนว่าจะต้องมีการใช้งาน Report อย่างน้อยซัก 1 ตัว ไม่ว่าจะเป็น Sales Order Report, Sales Invoice Report, Purchase Receipt Report

จะดีไหม ถ้าคุณสามารถออกแบบและแก้ไข Layout ได้เองโดยไม่จำเป็นต้องเพิ่ง Developer?

แต่ในบทความนี้ผมจะไม่ได้กล่าวถึงวิธีการทำ Report ให้กับ Dynamics 365 Business Central แต่จะบอกวิธีใช้งานเครื่องมือที่ชื่อว่า Custom Report Layout ที่ไว้ใช้สำหรับทำ Customize Report Layout เอง ดังนั้นบทความนี้จะเหมาะกับผู้ที่มีความรู้พื้นฐานในการทำรายงานบน Dynamics 365 Business Central แล้ว

เครื่องมือสำหรับการทำ Custom Report Layout

เครื่องมือที่ใช้ในการแก้ไข Report Layout นั้นจะมีอยู่ 2 ตัวด้วยกันคือ SQL Report Builder ซึ่งจะถูกติดตั้งมากับตัวโปรแกรม Microsoft SQL Server และ Visual Studio Community ซึ่งเป็น free version สามารถใช้แก้ไข Report Layout ได้เหมือนกัน

โดยในบทความนี้ผมจะใช้ SQL Report Builder สำหรับแก้ไข Layout แต่ถ้าหากคุณไม่มีโปรแกรม ก็สามารถดาวน์โหลด Visual Studio Community มาใช้งานได้เหมือนกัน ซึ่งผมจะบอกวิธีการในภายหลังครับ

บทความที่คุณอาจสนใจ

Visual Studio Community สำหรับแก้ไข Report Layout บน Business Central
5 Tips ที่ช่วยให้การจัด Report Layout บน Business Central ทำง่ายขึ้น

Scenario Case

เอาละ ผมจะขอยก scenario ขึ้นมา สมมติว่าคุณมี Report ตัวหนึ่งที่ใช้สำหรับพิมพ์ ใบเสนอราคา (Sales Order) ให้กับลูกค้าขอลคุณ และรูปแบบของรายงาน (Report) ที่โปรแกรมเตรียมไว้ให้นั้น ไม่ตอบโจทย์ความต้องการของคุณเท่าไรนัก ดังนั้นคุณจำเป็นจะต้องปรับแต่ง Layout เพื่อให้รายงานของคุณนั้น สามารถแสดงข้อมูลได้สมบูรณ์ครบถ้วน

และนี่ด้านล่างคือหน้าตารายงาน Sales – Confirmation ของคุณ

custom-report-layouts-business-central-1
Sales – Confirmation Report

ซึ่งสามารถ Print ได้ปุ่มที่ชื่อว่า Print Confirmation… บนหน้าจอ Sales Order ด้านล่างนี้

custom-report-layouts-business-central-2

โดย Report นี้มีชื่อว่า Sales – Confirmation

custom-report-layouts-business-central-3

ซึ่งความต้องการของคุณคือ

“ต้องการให้แสดงข้อมูลจากฟิลด์ Your Reference ในรายงาน Sales – Confirmation ด้วย”

สมมติว่า Scenario Case ของคุณเป็นแบบข้างบน งั้นเราไปดูกันเลยว่าจะต้องทำยังไง โดยใช้ Custom Report Layout

Preparing

ก่อนอื่นเราจำเป็นจะต้องรู้ก่อนว่า Report ที่เราต้องการแก้ไข Layout นั้น มีเลข ID อะไร โดยให้คลิกที่ปุ่ม Search แล้วพิมพ์ว่า Report Layout Selection

custom-report-layouts-business-central-4

เมื่อเข้าไปแล้วคุณจะเจอ List รายการของ Report ทุกตัวในโปรแกรม Dynamics 365 Business Central

custom-report-layouts-business-central-5

จากข้างบนเรารู้ชื่อ Report ที่เราต้องการจะแก้ไขแล้ว ซึ่งก็คือ Sales – Confirmation ดังนั้นที่ปุ่ม Search ด้านซ้ายมือให้พิมพ์ว่า Sales – Confirmation ได้เลยครับ

custom-report-layouts-business-central-6

เท่านี้ก็รู้แล้วว่า Report ID ของ Sales – Confirmation ก็คือ 1305 ให้จำเลขนี้ไว้นะครับ งั้นไปสเต็ปถัดไปได้เลยครับ

บทความที่คุณอาจสนใจ

เริ่มต้นสร้าง Extension แรกบน MS Dynamics 365 BC ตอนที่ 1 – New Table
คู่มือใช้งาน Dynamics 365 Business Central – Sales Module: ตอนที่ 1 สร้าง Customer

Custom Report Layouts

โดยขั้นตอนการทำ Custom Layout คือเราจะสร้างรายการ Custom Report Layout ขึ้นมา จากนั้นเราจะ Export Layout ออกไปเป็นไฟล์ .rdl และใช้โปรแกรม SQL Report Build ใน Custom Layout จากเราก็จะ Import Layout ที่ถูกแก้แล้วกลับเข้ามาในโปรแกรม ถ้าอ่านแล้วยังค่อยเก็ท ก็ไปดูวิธีการกันได้เลยครับ

ที่ปุ่ม search ด้านขวาให้พิมพ์ว่า Custom Report Layouts

custom-report-layouts-business-central-7

New Layout

เมื่อเข้ามาแล้วก็จะเจอกับ List ของรายการ Custom Report

custom-report-layouts-business-central-8

จากนั้นให้คลิกที่ปุ่ม New > New… ด้านบนได้เลย

custom-report-layouts-business-central-9

ก็จะได้หน้าต่างแบบนี้ขึ้นมา

custom-report-layouts-business-central-10

ตรงนี้เรารู้ Report ID ที่เราจะทำ Custom Layout แล้วว่า คือ 1305 ก็ให้กรอกลงไปที่ช่อง Report ID ได้เลย และให้เลือก Insert RDLC Layout ด้วย จากนั้นก็กดปุ่ม OK ครับ

custom-report-layouts-business-central-11

ซึ่งจะได้รายการบรรทัดนี้ขึ้นมาครับ สังเกตุง่าย ๆ ว่า Report ID จะเป็นเลขเดียวกับที่เราสร้าง และจะมี Description ว่า Copy of Built-in layout ครับ

custom-report-layouts-business-central-12

ตรงนี้เพื่อให้เข้าใจง่ายขึ้นเราจะแก้ Description ให้ ใหม่สื่อได้เข้าใจมากขึ้น โดยผมจะแก้เป็น My Sales – Confirmation Layout

custom-report-layouts-business-central-13

Export Layout

ขั้นตอนต่อมาคือ Export Layout ออกมา และเราจะแก้ไข Layout ด้วยโปรแกรม SQL Report Builder ตามที่เราต้องการ

หลักจากเลือกรายการ Sales – Confirmation: My Sales – Confirmation Layout แล้ว ที่เมนูด้านบนให้คลิกที่ปุ่ม Export Layout

custom-report-layouts-business-central-14

ที่ Folder ที่เก็บไฟล์ที่ถูกดาวน์โหลดมา จะมีไฟล์ชื่อว่า Default.rdl อยู่

Custom Your Layout

หลังจากได้ไฟล์ layout มา ให้คุณ double click เพื่อเปิด Layout ด้วยโปรแกรม SQL Report Builder และรูปด้านล่างก็คือหน้าตา Report Layout ของรายงาน Sales – Confirmation

custom-report-layouts-business-central-15

หมายเหตุ: หากคุณไม่สามารถเปิดตัว Layout ได้ แนะนำว่าให้คุณดาวน์โหลดโปรแกรม Visual Studio Community และติดตั้งไว้ที่เครื่อง จากนั้นแก้ไขชื่อไฟล์ จาก Default.rdlc ไปเป็น Default.rdlc แล้วค่อยเปิดไฟล์ Layout ใหม่

ที่ Layout ผมพิมพ์คำว่า Your Reference เพื่อเป็น Label ให้กับฟิลด์

custom-report-layouts-business-central-16

จากนั้นที่ช่องว่างด้านขวาให้คลิกที่กล่องสี่เหลี่ยมรูปลิสท์รายการ

custom-report-layouts-business-central-17

โปรแกรมจะแสดง List ของฟิลด์ที่สามารถนำมาใส่ใน Layout ได้ทั้งหมด จากนั้นให้เลือกฟิลด์ที่ชื่อว่า Your Reference

custom-report-layouts-business-central-18

ก็จะได้ Layout ที่ทำการ Custom แล้วหน้าตาแบบนี้ครับ

custom-report-layouts-business-central-19

หมายเหตุ: จริง ๆ แล้วเราสามารถเลือกฟิลด์ [YourReference_Lbl] มาใส่ได้ แต่ผมจะแสดงให้ดูว่าเราสามารถพิมพ์ Text อะไรก็ได้ ใส่เข้าไปใน Layout ได้เลยครับ

จากนั้นกด Save แล้วปิดโปรแกรมได้เลยครับ เป็นอันเสร็จสิ้นการ Custom Layout

custom-report-layouts-business-central-20

Import Your Custom Layout

เมื่อเรา Custom Layout เสร็จเรียบร้อยแล้ว ขั้นตอนต่อไปก็จะเป็นการ Import Layout กลับเข้ามาให้ครับ

ให้ไปที่หน้า Custom Report Layouts จากนั้นเลือกรายการ 1305: Sales – Confirmation: My Sales Confirmation Layout แล้วคลิกที่ปุ่ม Import Layout ที่เมนูด้านบน

custom-report-layouts-business-central-21

จากนั้นคลิกที่ปุ่ม Choose…

custom-report-layouts-business-central-22

แล้วเลือกไฟล์ Default.rdl ที่เราเพิ่งแก้ไข Layout ไป แล้วคลิกที่ปุ่ม Open

custom-report-layouts-business-central-23

Test Run Layout

เมื่อ Import ตัว Custom Layout เข้ามาแล้ว เราสามารถทดสอบได้โดยการคลิกที่ปุ่ม Run Report

custom-report-layouts-business-central-24

จากนั้นคลิกที่ปุ่ม Preview

custom-report-layouts-business-central-25

จะเห็นว่าฟิลด์ Your Reference ที่คุณเพิ่มเข้าไปนั้น ปรากฎอยู่บนรายงานแล้ว

custom-report-layouts-business-central-26

แต่ว่า Layout ใหม่นี้จะยังไม่ถูก Apply เข้ากับรายงาน Sales – Confirmation ของจริงที่หน้า Sales Order ดังนั้นคุณจำเป็นต้องทำ Step ถัดไปเป็นลำดับสุดท้าย

Apply Custom Report Layout

เมื่อเราปรับแต่ง Layout และได้ทดสอบว่าออกถูกต้องตามที่ต้องการแล้ว ขั้นตอนต่อไปก็คือเราจะ Apply ให้ Report ของจริงใช้งาน Layout จากตัวที่เรา Custom ไว้

โดยให้ไปที่หน้าจอ Report Layout Selection

custom-report-layouts-business-central-27

หากยังจำได้ เลข ID ของ Report เราก็คือ 1305 ดังนั้นให้พิมพ์ 1305 ลงไปที่ช่อง search ได้เลย ก็จะปรากฎรายการที่เราต้องการขึ้นมา

custom-report-layouts-business-central-28

จากนั้นที่คอลัมภ์ Selected Layout ให้เปลี่ยนค่าเป็น Custom Layout

custom-report-layouts-business-central-29

ระบบจะแสดง List รายการของ Custom Report Layout ขึ้นมา ให้เลือกรายการที่เราสร้างขึ้นมาเองโดยดูจาก My Sales – Confirmation Layout ที่คอลัมภ์ Description ได้เลย เสร็จแล้วกด OK ได้เลย

custom-report-layouts-business-central-30

จะเห็นว่าคอลัมภ์ Selected Layout เปลี่ยนเป็น Custom Layout แล้ว

custom-report-layouts-business-central-31

Test Real Report

ในขั้นตอนสุดท้ายเราจะไปพิมพ์รายงาน Sales – Confirmation ที่หน้าจอ Sales Order ดูว่า จะได้ Layout ตามที่เราปรับแต่งไว้หรือไม่

ให้ไปที่หน้าจอ Sales Order แล้วคลิกที่ปุ่ม Print Confirmation ได้เลย

custom-report-layouts-business-central-32

เท่านี้เราก็ได้ Report ที่เราปรับแต่ง (Custom) Layout สำหรับใช้งานเองได้แล้ว

custom-report-layouts-business-central-33

Conclusion

เราสามารถปรับแต่ง Layout ของ Standard Report ใหม่โดยการใช้ฟังก์ชั่น Custom Report Layout ภายในโปรแกรม Microsoft Dynamics 365 Business Central (NAV) แต่ก็มีข้อจำกัดคือ เราจะไม่ได้สามารถเพิ่มฟิลด์ใหม่ที่อยู่นอกเหนือจาก Base Code เตรียมไว้ให้ เข้ามาใน data item ได้

หากต้องการเพิ่มฟิลด์ใหม่จำเป็นต้องเขียน Extension แล้วสร้าง Object Report ขึ้นมาเอง โดยอาจ Copy โค้ดของ Base Code แล้วเอามาแก้ไขต่อ

แล้วเจอกันใหม่ในบทความหน้า สวัสดีครับ

ERP Consultant ที่อยากแชร์ความรู้เกี่ยวกับการพัฒนาโปรแกรม Microsoft Dynamics NAV / 365 Business Central ทั้งทางด้าน Business และ Technical ให้กับเหล่านักศึกษา, ผู้ที่เริ่มต้นอาชีพนี้ หรือต้องการที่จะเพิ่มเติมความรู้ด้าน ERP ในรูปแบบ blog ที่เป็นภาษาไทย Contact: amaddev90@gmail.com

Leave a Reply

Your email address will not be published. Required fields are marked *