Advance Report Birt + Groovy
เขียนบทความเกี่ยวกับการทำ Report รวมกับบทความนี้แล้ว มีอยู่ 3 บทความแล้วนะครับ ไครไม่เข้า คอมเม้นมาได้นะครับ (ในกรณีตอบได้จะตอบครับ มือใหม่หัดขับ OFBIZ) ในการทำ Report ในบทความนี้จะเป็น Report ที่แสดงรายการสั่งซื้อสินค้า ซึ่งจะมีการ joint ตาราง OrderHeader และ OrderItem และยังมีตาราง Product อีกตารางหนึ่ง ซึ่งตารางพวกนี้เราจะใช้ของ OFBIZ และโปรแกรมนี้สามารถที่จะสร้าง Report ตามรายชื่อที่ค้นหาได้เลย ที่มีอยู่มาทำ
*/บทความนี้จะไม่อธิบายในสิ่งที่ีได้อธิบายไปแล้วในบทความก่อนๆ ถ้าสงสัยให้ค้นหาในหน้าหลักนะครับ
เริ่มแรกจะทำการสร้าง Screen ใหม่ขึ้นมา 1 Screen แล้วสร้าง Form ค้นหา 1 Form ดังภาพตัวอย่างนี้

ต่อเราจะมาสร้างไฟล์ Script Groovy กัน ไฟล์นี้จะเก็บไว้ใน ofbiz/hot-deploy/{app คุณ}/webapp/{app คุณ}/WEB-INF/actions/ แลัวให้เขียนโค้ดในภาพนี้ ลงไป

ไฟล์ Groovy นี้เราจะใช้มันเป็นตัวรับและส่ง parameter จาก Form (ที่เรากรอก) ไปยังไฟล์ Report Birt ที่เราสร้างอย่างปลอดภัย
request map เราจะสร้างมาหาไฟล์นี้ ตามโค้ดนี้
<request-map uri=”findSaleOrderPrint”>
<security https=”true” auth=”true”/>
<event type=”groovy” path=”component://helloapp/webapp/helloapp/WEB-INF/actions/orderInfoParam.groovy” ></event>
<response name=”success” type=”view” value=”saleOrderInfo”/>
</request-map><view-map name=”saleOrderInfo” type=”birt” page=”component://helloapp/webapp/helloapp/forms/reports/saleOrderReport.rptdesign” content-type=”application/pdf”/>
อย่าลืม กำหนด target มาที่ request map นี้ด้วยนะจ๊ะ
หลังจากที่เราสร้าง Screen, Form ต่างๆ แล้ว ต่อมาเราจะทำ Report กัน
เริ่่มจากสร้างไฟล์ Report ,สร้าง Data Source และ Data sets เราจะกำหนด อยู่ 3 data sets ดังนี้
1.เป็น data sets ของ ตาราง OrderHeader

โค้ดของตารางนี้ ในส่วน initialize, open และ fetch ตามลำดับ



2. เป็น data sets ของตาราง OrderItem

โค้ดของตารางนี้ ในส่วน initialize จะเหมือนกับ data sets ของ ตาราง OrderHeader , open และ fetch ตามลำดับ


3. เป็น data sets ของการ join ตารางทั้งสอง

เมื่อสร้าง data sets เสร็จแล้วเราจะทำการสร้าง parameter เราสร้างมา 2 ตัว คือ orderIds และ orderNames ซึ่งเป็นค่าที่ส่งมาจากไฟล์ groovy ในการสร้างให้คลิก is Required ออก ด้วย เพื่อให้โปรแกรมสามารถยอมรับได้เมื่อไม่มี parameter

ต่อมาจะเป็นของการจัด layout กันแล้ว นี้เป็นหน้ากระดาษ Report ของเรา


ตารางสีเทานั้นให้คลิกลากจาก data sets ของ joint แล้วเลือก attribute ที่ต้องการแสดง ในส่วนของ ผลรวมนั้น ให้คลิกขวาที่ช่องที่ต้อง insert-> aggregation ดังภาพด้านล่างนี้

ในส่วนอื่นๆ ให้เลือกใน data sets ของ join มาวาง หรือเพิ่ม label หรือ text หรือตกแต่งใส่สีให้สวยงาน แล้วลอง ทดสอบว่าได้ดังที่ออกแบบไว้หรือไม่


วันนี้ได้ทำการสร้าง report ที่รับค่าจากการค้นหาของผู้ใช้งานนำมาค้นหาแล้วสร้างเป็น report ออกมาเป็นไฟล์ pdf นะครับ บทความต่อไปจะได้กล่าวถึง groovy กันนะครับ
No comments:
Post a Comment