ตอนแรกนี้จะ เป็นการสร้าง jasper file จาก iReport ตามปกติ ซึ่งถ้าหากว่าใช้ iReport เป็นบ้างแล้วก็ไม่จำเป็นต้องอ่านละเอียดมากก็ได้ ให้ข้ามไป Using Jasper Report with Grails ตอนที่ 2 ได้เลย
ขั้นตอนหลักๆโดยทั่วๆไป มีดังนี้
- สร้างไฟล์ .jrxml แล้วทำให้เป็น .jasper
- เขียน code ใน Grails (แน่นอนว่าเป็นภาษา Groovy) ให้ไปเรียก Jasper Report ช่วย generate ไฟล์ให้

จากนั้น click ปุ่มนี้
ที่ toolbar เพื่อสร้าง Datasource อันใหม่ จะเจอหน้าต่างนึงขึ้นมา Title ไว้ว่า Connections / Datasources จากนั้นเลือก new เพื่อสร้างใหม่ จะพบหน้าต่างสำหรับ เลือกชนิดของ Datasource (Select the datasource type) ให้เลือก JavaBeans set datasource (สำหรับจะสร้าง report จาก class file ของเรา) แต่ถ้าต้องการแบบอื่นๆก็เลือกอันอื่นไป เช่นเราจะสร้าง report จากการติดต่อ MySQL แล้วก็ query ข้อมูลออกมา fill ใน report ก็เลือก Database JDBC connection เป็นต้น ในที่นี่เลือก javaBeans set datasource จากนั้นกด next แล้วจะเจอหน้าต่างนี้
ตั้งชื่อเพราะๆ และ text field 2 ช่องที่เหลือก็ไม่ต้องกรอกอะไร ปล่อยๆว่างๆไว้ แล้วก็ไม่ต้อง Test เพราะว่า Test ยังไงก็ไม่ผ่าน จากนั้นกด Save เป็นอันจบขั้นตอนการสร้าง datasource แล้ว
จากนั้นกลับมาปิดหน้าต่างสำหรับสร้าง datasource ออกไป แล้วมากำหนด datasource ที่เราจะใช้ที่ toolbar เป็นอันที่เราสร้างแบบนี้ ![]()
ต่อไปเราจะกำหนด class ต่างๆที่เราจะใช้ โดยไปกำหนดที่ Options ของ iReport ในส่วนของ Classpath และถ้าหากว่าเราต้องใช้ font บาง font ด้วย เช่น font ภาษาไทยสวยๆ ก็กำหนดลงไปใน class path นี้ได้เลย พร้อมทั้งไปกำหนดใน tab Fontpath ด้วยว่า font อยู่ใน path ไหน โดย class ต่างๆใน Grails นั้น เมื่อ source file ของเราถูก compile ไปแล้วจะไปเก็บไว้ที่
$HOME/.grails/เวอร์ชั้น/projects/ชื่อโปรเจค/classes
จากนั้นก็ pack ให้เป็น .jar ก้อนกลมๆ แล้วเอาไปเก็บไว้ที่ไหนซักที่ (ในที่นี้ใช้ชื่อว่า my.jar) แล้วก็กำหนด Classpath ให้ iReport ชี้ไปหา jar file นั้นได้เลย ตามรูป
จากนั้น click ขวาที่โปรเจค แล้วเลือก Edit Query ตามรูปด้านล่าง
จะมีหน้าต่างปรากฏออกมา จากนั้นเลืิอก tab ชื่อ JavaBean Datasource และกรอก Class name ที่เราต้องการอ่านค่า attribute ลงไป จากนั้นกดปุ่ม read attribute จะมี attribute ต่างๆปรากฏออกมา ให้เลืิอก attribute ที่ต้องการ กดปุ่ม Add selected field(s) เมื่อได้ attribute ต่างๆที่เราจะใช้แล้วกด ok ดังรูป
เมื่อเรามาดูที่ Report Inspector ใน node ชื่อ fields จะพบว่ามี attribute ต่างๆตามที่เราเลือกไว้แล้ว เสนอหน้ามาให้เราพร้อมใช้งาน
ต่อจากนี้ก็เริ่มสร้าง jrxml ได้เลย โดยการลาก field ไปแปะๆ ตาม style การสร้าง jasper ไฟล์จาก iReport ปกติ จากนั้นกด Preview ดูผลลัพธิ์ iReport จะสร้างไฟล์ .jasper มาให้ (ตอนที่ 2 เราจะใช้ไฟล์นี้แหละ) ไม่ต้องตกใจถ้าจะเห็นว่าไม่มีอะไรใน field ต่างๆที่เรากำหนดไป นอกจาก null เท่านั้น
แค่นี้ก็สร้าง .jasper พร้อมใช้ไว้เสร็จแล้ว ตอนต่อไปจะเอา jasper ไฟล์นี้ไปใช้กับ Grails ตอนนี้พอแค่นี้ก่อน
สำหรับปัญหาที่มักพบกันบ่อยๆคือเมื่อ generate ออกมาแล้วไฟล์ Report ที่เป็น PDF มันไม่แสดงภาษาไทย! สามารถแก้ไขได้โดย
- หา font ที่สามารถใช้ได้ฟรีๆ มากำหนดไว้ใน classpath และ fontpath โดยสามารถกำหนดได้ใน Options ของ iReport ตามที่ได้กล่าวมาแล้วข้างต้น
- ในแต่ละ field ที่เราลากไปแปะในส่วนของ Designer นั้นให้กำหนด Property ต่างๆดังนี้
- Pdf Font name เป็นชื่อของ font ที่เราต้องการ และ support ภาษาไทยด้วย ซึ่งก็ควรจะเป็น font ที่เราเลือกมาแล้วเอาไปกำหนดไว้ใน fontpath แล้ว (ถ้า iReport เจอ จะเห็นชื่อ font ของเราอยู่ใน combobox ให้เลือกได้เลย ถ้าไม่เจอก็ควรตรวจสอบดูใหม่ว่า path กำหนดถูกต้องหรือเปล่า)
- Pdf Embedded ให้ติ๊กถูกใน checkbox (เราจะฝัง font ลงไปกับไฟล์ด้วยเลย ถ้าไม่ต้องการฝังไปก็ไม่ต้องติ๊ก)
- Pdf Encoding ให้เลือกเป็น Identity-H (Unicode with horizontal writing)
Related Link from Roti









0 comments:
แสดงความคิดเห็น