Tuesday, September 27, 2016

Basic Report Creating (-O-)

Share it Please
วันนี้เราจะมาทำ report ซึ่งจะดึงข้อมูลจาก entity student ที่เราได้นิยามกันในบทความก่อนๆ ในการทำ report ในเราจะใช้ birt framework เป็นตัวช่วยในการทำ report และจะใช้ Eclipse mars ที่มาพร้อมกับ birt ตามลิงนี้เลย link  ในการทำ report นี้ จะทำต่อจากบทความที่แล้ว
มาเริ่มกันเลยนะครับ ในการทำ Report เราจะทำการสร้าง โฟลเดอร์ชื่อว่า report ไว้ใน path นี้  {ชื่อ app หรือ component}/webapp/helloapp/forms/ แล้วให้สร้างไฟล์ขึ้นมา โดยเลือก file->new->report แล้วให้ตั้งชื่อ แล้วจะได้หน้ากระดาษปล่าวๆ มาScreenshot from 2016-01-12 20:06:41
ในแท็บ Master Page  ดังภาพด้านบน เราจะใช้ทำหัวกระดาษหรือชื่อรายงาน ในการทำเราจะต้องนำ Grid วางในหน้านี้เสียก่อน ถึงจะสามารถแทรก component ต่างๆ ข้าไปได้ ดังภาพนี้
Screenshot from 2016-01-12 20:09:35.png
ให้คลิกลากมาวางได้เลย ตัวอย่างการสร้างหัวกระดาษ หลังจากการนำ Grid (1 x 1) มาวางแล้ว จะนำเอา label มาวางแล้ว พิมพ์ปรับแต่งตามใจใน property ดังภาพ
Screenshot from 2016-01-12 20:14:43
จากนั้นจะมาสร้าง list ข้อมูลนักศึกษาที่ดึงมาจาก entity student โดยการเลือกแท๊บ layout
ต่อมาเราจะมาทำการกำหนดค่า และเขียนโค้ดในการดึงข้อมูลมาจากการสร้าง data source ก่อน
Screenshot from 2016-01-12 20:21:23
จากนั้น สร้าง data set นี้จะเป็นการกำหนดชื่อของคอลัมน์ และจะใช้ชื่อนี้อ้างในขั้นตอนต่อไปด้วย****** นะครับ******
Screenshot from 2016-01-12 20:22:24Screenshot from 2016-01-12 20:22:57
หลังการที่สร้าง data set เสร็จจะมาทำการกำหนดการ import สังเกตดูว่าที่คำว่า script จะถูกเลือกเป็น Initialize (มันจะขึ้นมาอยากนิดหน่อย เทคนิก ให้กลับไปคลิกที่แท็บ layout แล้วในหน้านั้นสัก 1-2 ครั้ง แล้วกลับมาคลิกที่แท็บ Script อีกครั้ง) ให้กำหนดเหมือนในภาพนี้Screenshot from 2016-01-12 20:24:44
จากนั้นใหคลิกที่ data sets ที่เราได้สร้างไว้ แล้วคลิกที่แท็บ Script แล้วเลือก list box ให้เป็น open และ fetch ตามลำดับ ให้พิมพ์คำสั่งตามภาพ ตัวแปร delegator ที่ใช้ในการติดต่อหรือจัดการกับข้อมูล ที่นี้จะใช้ดึงข้อมูลจาก entity student มา
Screenshot from 2016-01-12 20:42:12
ใน fetch นี้จะเป็นการนำข้อมูลมาใส่ในตาราง ในคำสั่ง .getString("-")  มี argument  เป็น ชื่อ attribute ของ entity student สักเกต ตัวแปร row['key'] ซึ่งคือ key นั้นจะเป็นชื่อคอลัมน์ที่เราได้กำหนดไว้ใน data set
Screenshot from 2016-01-12 20:42:19
ต่อมาเราจะมาทำตารางตามภาพด้านล่างนี้ ให้คลิกที่แท็บ Layout คลิกชื่อ data sets ที่เราสร้างมาวาง ในหน้ากระดาษของเรา
Screenshot from 2016-01-12 21:09:46
การสร้าง report ของเราเป็นอันเสร็จ ต่อมาเราจะสร้าง ปุ่ม เปิดดู report ที่เราสร้างกัน
เปิดไฟล์ *Screen.xml ที่เราได้สร้างในบทความก่อนหน้านี้ Screen ชื่อว่า main เราจะเพิ่ม link ขึ้นมาอีก 1 link ตามโค้ดนี้
Screenshot from 2016-01-12 21:54:54
ซึ่งมีโค้ดดังนี้
โค้ดปุ่มเก่า
<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") เป็นอันสำเร็จ
ผลลัพธ์  ******/ขออภัยด้วยนะครับ ผมกรอกข้อมูลนักศึกษามั่วไปหน่อย
Screenshot from 2016-01-12 22:07:17Screenshot from 2016-01-12 22:08:07
ว้าว มัน ช่างสุดยอดจริงๆ ฝาก แฟนๆ แนะนำเพื่อนให้ติดตาม jokking code ด้วยนะครับ

No comments:

Post a Comment

Blogroll

About