JasperReports হল একটি শক্তিশালী রিপোর্টিং লাইব্রেরি যা একাধিক ডেটা সোর্স থেকে রিপোর্ট তৈরি করতে এবং বিভিন্ন ফরম্যাটে এক্সপোর্ট করতে সহায়ক। এটি আপনাকে রিপোর্টকে PDF, HTML, CSV, Excel (XLS), RTF, XML, Text, এবং অন্যান্য ফরম্যাটে এক্সপোর্ট করার সুবিধা দেয়।
এখানে আমরা দেখবো কীভাবে JasperReports ব্যবহার করে একাধিক ফরম্যাটে রিপোর্ট এক্সপোর্ট করা যায়। উদাহরণ হিসাবে, একটি সাধারণ Employee Report তৈরি করে তা বিভিন্ন ফরম্যাটে এক্সপোর্ট করা হবে।
ধাপ ১: JasperReport তৈরি করা
প্রথমে একটি JasperReport তৈরি করা দরকার। এই উদাহরণে, আমরা একটি সাধারণ Employee রিপোর্ট তৈরি করবো এবং এটি বিভিন্ন ফরম্যাটে এক্সপোর্ট করবো।
Employee Report Model (Employee.java)
public class Employee {
private int id;
private String name;
private String department;
// Constructors
public Employee(int id, String name, String department) {
this.id = id;
this.name = name;
this.department = department;
}
// Getters and Setters
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getDepartment() {
return department;
}
}
Employee Report (EmployeeReport.jrxml)
এটি একটি খুবই সাধারণ JasperReports রিপোর্ট। আমরা Employee তথ্যকে তালিকা আকারে দেখাবো।
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports
http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="EmployeeReport" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<field name="id" class="java.lang.Integer"/>
<field name="name" class="java.lang.String"/>
<field name="department" class="java.lang.String"/>
<detail>
<band height="20">
<textField>
<reportElement x="0" y="0" width="50" height="20"/>
<textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="60" y="0" width="200" height="20"/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="270" y="0" width="150" height="20"/>
<textFieldExpression><![CDATA[$F{department}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
ধাপ ২: Java Code দিয়ে Report তৈরি এবং Export করা
আমরা Java কোড ব্যবহার করে রিপোর্ট তৈরি করবো এবং বিভিন্ন ফরম্যাটে এক্সপোর্ট করবো, যেমন PDF, HTML, Excel, এবং CSV।
Java কোড: JasperReports Report Export
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JasperReportsExportExample {
public static void main(String[] args) {
try {
// Sample Data
List<Employee> employees = new ArrayList<>();
employees.add(new Employee(1, "John Doe", "HR"));
employees.add(new Employee(2, "Jane Smith", "Finance"));
employees.add(new Employee(3, "Robert Brown", "IT"));
// JRBeanCollectionDataSource for Employee data
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(employees);
// Compile the .jrxml file into a JasperReport
JasperReport jasperReport = JasperCompileManager.compileReport("EmployeeReport.jrxml");
// Parameters for the report (if any)
Map<String, Object> parameters = new HashMap<>();
parameters.put("ReportTitle", "Employee Report");
// Fill the report with data
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
// Export report to different formats
// Export to PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, "EmployeeReport.pdf");
System.out.println("PDF Report Exported!");
// Export to HTML
JasperExportManager.exportReportToHtmlFile(jasperPrint, "EmployeeReport.html");
System.out.println("HTML Report Exported!");
// Export to CSV
JasperExportManager.exportReportToCsvFile(jasperPrint, "EmployeeReport.csv");
System.out.println("CSV Report Exported!");
// Export to Excel (XLS)
JRXlsExporter xlsExporter = new JRXlsExporter();
xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "EmployeeReport.xls");
xlsExporter.exportReport();
System.out.println("Excel (XLS) Report Exported!");
} catch (JRException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- Employee Data: আমরা
Employeeক্লাসের একটি লিস্ট তৈরি করেছি এবং তাJRBeanCollectionDataSourceএ প্রদান করেছি, যা রিপোর্টে ডেটা প্রদান করবে। - Report Compilation:
JasperCompileManager.compileReport("EmployeeReport.jrxml")দিয়ে.jrxmlফাইলটি.jasperফরম্যাটে কম্পাইল করা হয়। - Report Filling:
JasperFillManager.fillReport()পদ্ধতির মাধ্যমে রিপোর্টটি ডেটা এবং প্যারামিটার দিয়ে পূর্ণ করা হয়। - Exporting:
JasperExportManager.exportReportToPdfFile(),exportReportToHtmlFile(),exportReportToCsvFile()এবংJRXlsExporterব্যবহার করে বিভিন্ন ফরম্যাটে এক্সপোর্ট করা হয়।
ধাপ ৩: Output ফরম্যাট
- PDF:
EmployeeReport.pdfফাইল তৈরি হবে, যা Adobe Reader বা অন্য কোন PDF ভিউয়ারে দেখতে পারবেন। - HTML:
EmployeeReport.htmlফাইলটি যে কোন ওয়েব ব্রাউজারে দেখা যাবে। - CSV:
EmployeeReport.csvফাইলটি Excel বা অন্য CSV কম্প্যাটিবল সফটওয়্যার দিয়ে খোলা যাবে। - Excel (XLS):
EmployeeReport.xlsফাইলটি Excel এ ওপেন করা যাবে।
- JasperReports আপনাকে একই রিপোর্টকে multiple formats (PDF, HTML, CSV, Excel, etc.) এ এক্সপোর্ট করতে সাহায্য করে।
- Java Code এর মাধ্যমে আপনি রিপোর্ট তৈরির পর সেই রিপোর্টকে বিভিন্ন ফরম্যাটে এক্সপোর্ট করতে পারবেন, যা বিভিন্ন প্ল্যাটফর্মে ব্যবহারের জন্য উপযুক্ত।
- JasperReports-এ বিভিন্ন exporting options সহ subreports, charting, grouping, parameters, ইত্যাদি অন্তর্ভুক্ত করা সম্ভব।
এটি একটি সাধারণ উদাহরণ, এবং আপনি JasperReports এর আরও শক্তিশালী ফিচার যেমন Dynamic Reports, Multiple Datasets, Complex Data Sources, ইত্যাদি ব্যবহার করে আরও জটিল রিপোর্ট তৈরি করতে পারেন।
Read more