JasperReports JDBC Data Source ব্যবহার করে ডাটাবেস থেকে ডেটা নিয়ে রিপোর্ট তৈরি করতে পারে। এই পদ্ধতিতে, JDBC DataSource ব্যবহার করে আপনার ডাটাবেস থেকে ডেটা ক্যাপচার করা হয়, এবং তারপর সেই ডেটাকে একটি রিপোর্টে রূপান্তর করা হয়। নিচে ধাপে ধাপে JDBC Data Source ব্যবহার করে JasperReports রিপোর্ট তৈরি করার প্রক্রিয়া বর্ণনা করা হয়েছে।
ধাপ 1: Maven Dependency যোগ করা
JasperReports ব্যবহার করার জন্য প্রথমে আপনার pom.xml ফাইলে প্রয়োজনীয় ডিপেনডেন্সি যোগ করুন।
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.19.1</version> <!-- আপনার প্রকল্পের জন্য সর্বশেষ সংস্করণ ব্যবহার করুন -->
</dependency>
<dependency>
<groupId>com.mysql.cj</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version> <!-- MySQL JDBC ড্রাইভার -->
</dependency>
</dependencies>
এখানে MySQL JDBC Connector ডিপেনডেন্সি যুক্ত করা হয়েছে। আপনার ডাটাবেস অনুযায়ী আপনি এটি পরিবর্তন করতে পারেন (যেমন PostgreSQL, Oracle ইত্যাদি)।
ধাপ 2: JasperReports Template (JRXML) তৈরি করা
এখন আপনি JRXML ফাইল তৈরি করুন, যেখানে রিপোর্টের কাঠামো থাকবে। এটি একটি টেমপ্লেট হিসেবে কাজ করবে, যা ডাটাবেস থেকে ডেটা নিয়ে রিপোর্ট জেনারেট করবে।
Example: Simple Report (example_report.jrxml)
<?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" language="java" pageWidth="595" pageHeight="842"
columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<!-- Report fields -->
<field name="employee_id" class="java.lang.Integer"/>
<field name="employee_name" class="java.lang.String"/>
<field name="employee_salary" class="java.lang.Double"/>
<!-- Report details -->
<detail>
<band height="20">
<textField>
<reportElement x="0" y="0" width="200" height="20"/>
<textFieldExpression><![CDATA[$F{employee_id}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="220" y="0" width="200" height="20"/>
<textFieldExpression><![CDATA[$F{employee_name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="440" y="0" width="100" height="20"/>
<textFieldExpression><![CDATA[$F{employee_salary}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
এই টেমপ্লেটে, আমরা employee_id, employee_name, এবং employee_salary ফিল্ড যুক্ত করেছি, যা ডাটাবেস থেকে আসবে এবং রিপোর্টের ডিটেইলস সেকশনে প্রদর্শিত হবে।
ধাপ 3: ডাটাবেস সংযোগ এবং রিপোর্ট তৈরি
এখন JDBC Data Source ব্যবহার করে ডাটাবেস থেকে ডেটা নিয়ে রিপোর্ট তৈরি করা হবে। নিচে JDBC সংযোগের মাধ্যমে ডেটা ফিল্টার করা এবং JasperReports ব্যবহার করে রিপোর্ট তৈরি করার একটি উদাহরণ দেওয়া হল।
Java কোড: JDBC DataSource ব্যবহার করে রিপোর্ট তৈরি করা
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
public class JasperReportWithJDBC {
public static void main(String[] args) {
try {
// JDBC Connection Setup
String url = "jdbc:mysql://localhost:3306/your_database"; // আপনার ডাটাবেস URL
String username = "your_username";
String password = "your_password";
Connection connection = DriverManager.getConnection(url, username, password);
// JasperReport Compile (JRXML থেকে Jasper ফাইল তৈরি)
JasperReport jasperReport = JasperCompileManager.compileReport("example_report.jrxml");
// Parameters for report (e.g., title, filters)
Map<String, Object> parameters = new HashMap<>();
parameters.put("ReportTitle", "Employee Report");
// Query to fetch data from database
String query = "SELECT employee_id, employee_name, employee_salary FROM employees";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
// Data Source (JDBC ResultSet)
JRResultSetDataSource jrResultSetDataSource = new JRResultSetDataSource(resultSet);
// Fill Report with data from database
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, jrResultSetDataSource);
// Export the report to PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, "employee_report.pdf");
// Optionally, view the report on screen
JasperViewer.viewReport(jasperPrint, false);
System.out.println("Report generated successfully!");
} catch (SQLException | JRException e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা:
- JDBC Connection Setup: ডাটাবেসের সাথে সংযোগ স্থাপন করতে
DriverManager.getConnection()ব্যবহার করা হয়েছে। - Report Compilation: JasperCompileManager.compileReport("example_report.jrxml") কমান্ড দিয়ে JRXML ফাইলটি কম্পাইল করে JasperReport তৈরি করা হয়েছে।
- Query Execution: ডাটাবেস থেকে ডেটা পেতে SQL প্রশ্ন চালানো হয়েছে এবং ResultSet তৈরি করা হয়েছে।
- DataSource: JRResultSetDataSource ব্যবহার করে JDBC ResultSet কে JasperReports DataSource-এ রূপান্তরিত করা হয়েছে।
- Report Filling: JasperFillManager.fillReport() ব্যবহার করে রিপোর্টটি ডেটার সাথে পূর্ণ করা হয়েছে।
- PDF Export: JasperExportManager.exportReportToPdfFile() ব্যবহার করে রিপোর্টটি PDF ফরম্যাটে এক্সপোর্ট করা হয়েছে।
- JasperViewer: রিপোর্টটি স্ক্রীনে দেখতে JasperViewer.viewReport() ব্যবহার করা হয়েছে।
ধাপ 4: রিপোর্ট তৈরি এবং ফলাফল
রিপোর্ট তৈরি হওয়ার পর, এটি employee_report.pdf ফাইল আকারে আপনার প্রোজেক্টের মধ্যে তৈরি হবে। এছাড়া, আপনি রিপোর্টটিকে স্ক্রীনে দেখতেও পারবেন।
Summary of Steps for JasperReports with JDBC DataSource
- Maven Dependency:
jasperreportsএবং JDBC ড্রাইভার আপনার pom.xml ফাইলে যোগ করুন। - JRXML File: JasperReports টেমপ্লেট (JRXML) তৈরি করুন যা রিপোর্টের কাঠামো নির্ধারণ করবে।
- JDBC Connection: ডাটাবেস থেকে ডেটা নিয়ে রিপোর্ট তৈরি করতে JDBC সংযোগ স্থাপন করুন।
- Fill Report: JDBC ResultSet থেকে ডেটা সংগ্রহ করে রিপোর্টে ফিল করুন।
- Export to PDF/Other Formats: JasperReports ব্যবহার করে রিপোর্টটি PDF বা অন্য ফরম্যাটে এক্সপোর্ট করুন।
- JDBC Data Source ব্যবহার করে JasperReports সহজেই ডাটাবেস থেকে ডেটা নিয়ে রিপোর্ট তৈরি করা সম্ভব।
- JasperCompileManager, JasperFillManager, এবং JasperExportManager এর সাহায্যে আপনি রিপোর্ট তৈরি, ফিল এবং এক্সপোর্ট করতে পারেন।
- JasperReports-এর সাথে JDBC সংযোগ করা একটি শক্তিশালী পদ্ধতি, যার মাধ্যমে আপনি ডাটাবেস থেকে তথ্য সংগ্রহ করে সুন্দরভাবে ফরম্যাটেড রিপোর্ট তৈরি করতে পারেন।
Read more