pro7beginner.blogspot.com ยินดีต้อนรับผู้รักในการเขียนโปรแกรมทุกท่าน ที่กำลังหัดเดิน ที่ยังไม่รู้ว่าจะเริ่มต้นเขียนโปรแกรมสักภาษาหนึ่งได้อย่างไร ลองอ่านบทความเหล่านี้ และรู้จักเพื่อนคนนี้นะ (อ้อ รบกวนให้ลิงค์หรือเครดิตกลับมาที่บล็อกนี้ด้วยนะ ขอบคุณครับ)
วันเสาร์ที่ 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 ล่ะกัน คืนนี้ดึกแล้ว ฝันดีครับ
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น