วันเสาร์ที่ 25 กรกฎาคม พ.ศ. 2558

JasperReport and iReport part 4-2



สวัสดีชาวโลก กับ PDF Online ด้วย Servlet
>> มาแตะขอบฟ้ากันเถอะ ด้วยการทดลองเพิ่มโค้ดที่จะไปเรียก report ให้ปรากฏ ตรงไปที่ servlet ของเรา ที่ชื่อ ReportServlet นั่นไง

>> มันมีรายละเอียดอย่างไร ตอนนี้ยังไม่ต้องสนใจ ลบไส้ของคลาส servlet นี้ออกให้หมดเลย ดูรูปถ้าไม่เข้าใจที่ผมสื่อ จากนั้นตรงไปที่เว็บนี้ครับ
http://www.ensode.net/jasperreports_pdf_send_to_browser.html

>> ลอกโค้ดเขามาแปะได้เลย เอาตรงนี้เป็นต้นไป
protected void doGet... จนถึง } ของมัน
เพื่อนทำได้นะ เราไว้ใจเธอ รายละเอียดเป็นอย่างไรไว้ผมจะอธิบายให้ภายหลังนะครับ

>> เห็นหลอดไฟสีเหลืองกับ error สีแดงเต็มไปหมดเลยสินะ อย่ากังวลไป ค่อยๆคลิกซ้ายที่หลอดไฟ แล้วทยอยดับไฟทีละดวง กิกิ ให้มัน import คลาสต่างๆแก่เรา ดูรูปประกอบนะ เยี่ยมมาก เราจะเหลือหลอดไฟแถม error อยู่นิดหน่อย (เฉพาะที่เส้นใต้สีแดง) ต้องแก้ด้วย JasperReports Library ครับผม แน่นอนว่าเรามีมันเก็บไว้ตั้งแต่ part ก่อนๆ

>> แต่ก่อนอื่นเราควรมี folder สำหรับเก็บ library พวกนี้เป็นการส่วนตัว จงตรงไปที่
D:\Workspace\Report\jasperreports\myreports\Report3

>> สร้าง folder ชื่อ lib ตรงนี้เลย จึงได้เส้นทางเข้าถึงเป็น
D:\Workspace\Report\jasperreports\myreports\Report3\lib

>> ทีนี้ทำตามผมบอกนะ ตรงไปที่
D:\Workspace\Report\jasperreports\dist
ขโมย jasperreports-6.1.0.jar มาใส่ lib ของเรา (คัดลอกไปนะ)

>> อีกที่หนึ่ง
D:\Workspace\Report\jasperreports\lib
คว้า .jar ตามนี้ไปใส่ lib ของเรา (คัดลอกไปนะ)
- commons-codec-1.5.jar
- commons-logging-1.1.1.jar
- commons-collections-3.2.1.jar
- commons-digester-2.1.jar
สุดท้าย
- iText-2.1.7.js2.jar

>> หุหุ หวังว่าจะไม่มีใครที่ใช้จาร์เวอร์ชันต่างจากผมมากนัก อาจรันและเงิบได้ รวมแล้ว 6 จาร์จัดไปสดๆ

>> กลับไป NetBeans นำ .jar ทั้งสิ้นใน lib ของเราเข้าโปรเจ็กต์ก่อน คลิกขวาที่ลูกโลกสีฟ้า เลือก Properties จะปรากฏหน้าต่าง Project Properties มองหาต่ออีกจากทางซ้ายหมวด Categories คลิกซ้ายที่ Libraries มองหาปุ่ม add JAR/Folder กดปุ่มนี้แล้วไปกวาดจาร์ไฟล์ของเราใน lib มาใส่ให้หมด

>> จัดการกับหลอดไฟและ error ที่เหลือซึ่งไม่ยากเย็นเลย เกลี้ยง นั่นแหละครับ ทำได้ดีมาก ดูรูปประกอบ

>> จากบรรทัดที่เขียนว่า
.getRealPath("/reports/Simple_Report.jasper");
ให้เราตามเขาไปก่อน โดยการตรงไปที่นี่ของโปรเจ็กต์เราครับ
D:\Workspace\Report\jasperreports\myreports\Report3\web

>> สร้าง folder ชื่อ reports ต่อจากนั้นเปิด iReport ขึ้นมาสร้างไฟล์ .jrxml ชื่อตามที่เขาว่า Simple_Report หรือจะไปคัดลอกเอาตัวที่แล้วของ part 2 ก็ได้ จากนั้นจึงเปลี่ยนชื่อมันเป็น Simple_Report โดยวางมันไว้ที่นี่
D:\Workspace\Report\jasperreports\myreports\Report3\web\reports

>> ไม่ว่าอย่างไรถือว่าเพื่อนๆเปิด iReport และให้ iReport เปิด Simple_Report.jrxml ไว้แล้วนะครับ ที่อยู่ไฟล์ตามนี้
D:\Workspace\Report\jasperreports\myreports\Report3\web\reports\Simple_Report.jrxml

>> ผมใช้ Static Text เขียนอีกข้อความลงไป รวมเป็น
- สวัสดีชาวโลก
กับ Hello World

>> ยังอยู่กับ iReport ตรวจสอบ report ตัวนี้ก่อนให้มัน focus ไปที่ภาษาจาวา ไม่ใช่ภาษา Groovy โดยคลิกขวาที่ไอคอนทางมุมบนซ้ายของหน้าต่าง Report Inspector ซึ่งไอคอนนี้มีชื่อเดิมว่า myreport นั่นเพราะผมใช้วิธีไปคัดลอกมาจาก part 2 เมื่อคลิกขวาแล้วให้เลือก Properties ครับ หรือจะมองหาหน้าต่าง Properties ทางด้านมุมขวาล่างก็ได้

>> เลื่อนลงไปจนกว่าจะเจอ Language เปลี่ยน Groovy เป็น Java นะ


>> เอาล่ะ อย่างที่เพื่อนๆทราบ .jrxml คือ XML แต่เราต้องการ .jasper ซึ่งหมายถึงตัว report ที่พร้อมจะเติม (fill) ข้อมูลลงไป ให้เพื่อนๆมองหาปุ่มที่ชื่อ Preview ครับ (มันอยู่ใกล้ๆกับปุ่ม Designer และ XML ณ ด้านบนรายงานของเรา ดูที่รูป) เจอแล้วกด Preview ไปหนหนึ่ง เจ้า iReport ก็จะสร้าง .jasper ให้จากการคอมไพล์ .jrxml โดยอัตโนมัติไงล่ะ ไม่เชื่อกลับไปดูที่
D:\Workspace\Report\jasperreports\myreports\Report3\web\reports
จะพบกับ Simple_Report.jasper

>> Simple_Report.jasper ตรงกับ real path ที่เรากำลังจะเซตให้ออบเจ็กต์ File รอช้าอยู่ใยล่ะ รัน servlet ตัวนี้กันอีกหน ตามขั้นตอนที่เคยบอกไป
- Clean and Build
- Deploy
- Run

>> ว้าวมันมาแล้ว! PDF ออนไลน์ กรรม ผมเปิดด้วย IE มันให้ผมดาวน์โหลดเพราะมันไม่มีตัวอ่าน pdf ในตัวเอง ผมจึงเปลี่ยนไปใช้ Chrome ผลจึงเป็นอย่างในภาพครับ ส่วนภาษาไทยยังไม่ขึ้นเป็นเรื่องปกติ ซึ่งไว้ผมจะจัดการให้ใน part 4-3 ล่ะกัน คืนนี้ดึกแล้ว ฝันดีครับ

ไม่มีความคิดเห็น:

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