วันนี้เราจะมาทำ report ซึ่งจะดึงข้อมูลจาก entity student ที่เราได้นิยามกันในบทความก่อนๆ ในการทำ report ในเราจะใช้ birt framework เป็นตัวช่วยในการทำ report และจะใช้ Eclipse mars ที่มาพร้อมกับ birt ตามลิงนี้เลย link ในการทำ report นี้ จะทำต่อจากบทความที่แล้ว
มาเริ่มกันเลยนะครับ ในการทำ Report เราจะทำการสร้าง โฟลเดอร์ชื่อว่า report ไว้ใน path นี้ {ชื่อ app หรือ component}/webapp/helloapp/forms/ แล้วให้สร้างไฟล์ขึ้นมา โดยเลือก file->new->report แล้วให้ตั้งชื่อ แล้วจะได้หน้ากระดาษปล่าวๆ มา

ในแท็บ Master Page ดังภาพด้านบน เราจะใช้ทำหัวกระดาษหรือชื่อรายงาน ในการทำเราจะต้องนำ Grid วางในหน้านี้เสียก่อน ถึงจะสามารถแทรก component ต่างๆ ข้าไปได้ ดังภาพนี้

ให้คลิกลากมาวางได้เลย ตัวอย่างการสร้างหัวกระดาษ หลังจากการนำ Grid (1 x 1) มาวางแล้ว จะนำเอา label มาวางแล้ว พิมพ์ปรับแต่งตามใจใน property ดังภาพ

จากนั้นจะมาสร้าง list ข้อมูลนักศึกษาที่ดึงมาจาก entity student โดยการเลือกแท๊บ layout
ต่อมาเราจะมาทำการกำหนดค่า และเขียนโค้ดในการดึงข้อมูลมาจากการสร้าง data source ก่อน

จากนั้น สร้าง data set นี้จะเป็นการกำหนดชื่อของคอลัมน์ และจะใช้ชื่อนี้อ้างในขั้นตอนต่อไปด้วย****** นะครับ******


หลังการที่สร้าง data set เสร็จจะมาทำการกำหนดการ import สังเกตดูว่าที่คำว่า script จะถูกเลือกเป็น Initialize (มันจะขึ้นมาอยากนิดหน่อย เทคนิก ให้กลับไปคลิกที่แท็บ layout แล้วในหน้านั้นสัก 1-2 ครั้ง แล้วกลับมาคลิกที่แท็บ Script อีกครั้ง) ให้กำหนดเหมือนในภาพนี้

จากนั้นใหคลิกที่ data sets ที่เราได้สร้างไว้ แล้วคลิกที่แท็บ Script แล้วเลือก list box ให้เป็น open และ fetch ตามลำดับ ให้พิมพ์คำสั่งตามภาพ ตัวแปร delegator ที่ใช้ในการติดต่อหรือจัดการกับข้อมูล ที่นี้จะใช้ดึงข้อมูลจาก entity student มา

ใน fetch นี้จะเป็นการนำข้อมูลมาใส่ในตาราง ในคำสั่ง .getString("-") มี argument เป็น ชื่อ attribute ของ entity student สักเกต ตัวแปร row['key'] ซึ่งคือ key นั้นจะเป็นชื่อคอลัมน์ที่เราได้กำหนดไว้ใน data set

ต่อมาเราจะมาทำตารางตามภาพด้านล่างนี้ ให้คลิกที่แท็บ Layout คลิกชื่อ data sets ที่เราสร้างมาวาง ในหน้ากระดาษของเรา

การสร้าง report ของเราเป็นอันเสร็จ ต่อมาเราจะสร้าง ปุ่ม เปิดดู report ที่เราสร้างกัน
เปิดไฟล์ *Screen.xml ที่เราได้สร้างในบทความก่อนหน้านี้ Screen ชื่อว่า main เราจะเพิ่ม link ขึ้นมาอีก 1 link ตามโค้ดนี้

ซึ่งมีโค้ดดังนี้
โค้ดปุ่มเก่า
<link target="CreateStudent" text="${uiLabelMap.HelloappCreateStu}" style="buttontext create"/>
โค้ดปุ่มที่กำลังสร้าง
<link target="ReportStudent" text="report student" style="buttontext edit"/>
request map ในไฟล์ controller.xml ให้เพิ่ม
<request-map uri="ReportStudent"><security https="true" auth="true"/><response name="success" type="view" value="ReportStudent"/></request-map>
<view-map name="ReportStudent" type="birt" page="component://helloapp/webapp/helloapp/forms/reports/helloappStudentReport.rptdesign" content-type="application/pdf"/>
สังเกต กำหนด view map จะแตกต่างไปกับการกำหนดที่เคยทำมา type="birt" กำหนด fomat ให้สร้างเป็นไฟล์ pdf ( content-type="application/pdf") เป็นอันสำเร็จ
ผลลัพธ์ ******/ขออภัยด้วยนะครับ ผมกรอกข้อมูลนักศึกษามั่วไปหน่อย


ว้าว มัน ช่างสุดยอดจริงๆ ฝาก แฟนๆ แนะนำเพื่อนให้ติดตาม jokking code ด้วยนะครับ
No comments:
Post a Comment