การทำงานร่วมกับเครื่องมือการรายงาน
ในการรวม ONEWEB เข้ากับเครื่องมือการรายงาน เราจำเป็นต้องใช้องค์ประกอบสามส่วน
Servlet สร้างเอกสารเอาต์พุต
จัดทำแบบฟอร์มรายงาน
สร้างเอนทิตีเพื่อค้นหาข้อมูลและส่งต่อไปยังผู้สร้างรายงาน servlet
หากต้องการทำความเข้าใจเกี่ยวกับสถาปัตยกรรมการรายงาน (reporting architecture ) บน ONEWEB โปรดดูรูปภาพด้านล่าง

ตัวอย่างต่อไปนี้อธิบายวิธีสร้างตัวอย่างรายงาน PDF จาก jasper(.jrxml) ด้วยโค้ด servlet java
ขั้นตอน 1
Prepare external jar files. (Note : x.x.x is version that project use)
commons-beanutils-x.x.x.jar
commons-collections-x.x.x.jar
commons-digester-x.x.jar
commons-logging-x.x.jar
groovy-all-x.x.x.jar (NOTE : If the report language is default Groovy. It is optional)
iText-x.x.x.jar(NOTE : For PDF Exports)
jasperreports-x.x.x.jar
poi-x.x.jar(for excel exports)
jfreechart-x.x.x.jar
ขั้นตอน 2
พัฒนาแบบฟอร์มรายงานโดยใช้เครื่องมือการรายงาน : iReport or Crystal report ตัวอย่างนี้สร้างแบบฟอร์มรายงานโดยใช้ iReport สำหรับรายละเอียดเพิ่มเติมโปรดดูลิงก์ต่อไปนี้
For iReport https://community.jaspersoft.com/wiki/ireport-designer-tutorials-help
For Crystal Report https://www.tutorialspoint.com/crystal_reports/
For jasper report https://www.tutorialspoint.com/jasper_reports/
ขั้นตอน 3
พัฒนา servlet เพื่อเรียกใช้รายงาน Jasper และสร้างรายงานในรูปแบบเอาต์พุต เช่น PDF หรือ Excel โค้ดตัวอย่างนี้สร้างรายงานในรูปแบบ PDF สร้าง servlet อย่างง่าย ซึ่งสร้างการเชื่อมต่อโดยใช้ชื่อ JNDI: “jdbc/application” แล้วเรียก Jasper
ผ่านการเชื่อมต่อเพื่อเลือกข้อมูลเพื่อสร้างรายงานและส่งคืนไฟล์รายงานไปยังฝั่งไคลเอ็นต์โดยไม่บันทึกไฟล์บนเซิร์ฟเวอร์
@Override
protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
try {
String path = "\\imports\\report\\oneweb_report.jrxml";
JasperReport jReport = JasperCompileManager.compileReport(path);
System.out.println("Jasper Report File Template : " + jReport);
//Database connection
Connection con = /*Database Connection : jdbc/application */;
//Set any Parameter
Map reportParameter = new HashMap();
paramMap.put("REPORT_PARAMETER", request.getParameter("REPORT_PARAMETER"));
//Don't have parameter pass null instead of reportParameter
JasperPrint jPrint = JasperFillManager.fillReport(jReport, reportParameter, con);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ServletOutputStream servletOutputStream = response.getOutputStream();
response.setContentType("application/pdf");
JasperExportManager.exportReportToPdfStream(jasPrint, servletOutputStream);
} catch (Exception ex) {
//Exception handler
//TODO
}
}
ขั้นตอน 4
สร้างเอนทิตีเพื่อเรียก servlet เพื่อสร้างรายงาน
ภายใน Entity ใช้ Entity Action และรวม JavaScript เพื่อเตรียมความพร้อมสำหรับฟังก์ชันที่เรียก servlet โดยใช้ URL - http://host:port/report?name=reportName&REPORT_PARAMETER=zzz
Last updated