JasperReports এ JDBC DataSource ব্যবহার করে রিপোর্ট তৈরি করা খুবই সাধারণ এবং কার্যকরী একটি প্রক্রিয়া, যেখানে আপনি JDBC (Java Database Connectivity) ব্যবহার করে ডেটাবেস থেকে ডেটা নিয়ে রিপোর্ট তৈরি করেন। এই প্রক্রিয়ায়, JasperReports আপনার ডেটাবেস থেকে ডেটা নিয়ে একটি JRXML ফাইলকে রিপোর্ট আউটপুট ফরম্যাটে রেন্ডার করে (যেমন PDF, HTML, CSV ইত্যাদি)।
JDBC DataSource ব্যবহার করে আপনি যেকোনো রিলেশনাল ডেটাবেস যেমন MySQL, PostgreSQL, Oracle ইত্যাদি থেকে ডেটা সংগ্রহ করতে পারেন এবং তা রিপোর্টে উপস্থাপন করতে পারেন।
JDBC DataSource ব্যবহার করে JasperReports রিপোর্ট তৈরি করার প্রক্রিয়া
- JDBC Connection তৈরি করা:
- প্রথমে, আপনাকে একটি JDBC Connection তৈরি করতে হবে যা ডেটাবেসের সাথে সংযোগ করবে।
- JRXML ফাইল তৈরি করা:
- তারপর, একটি JRXML ফাইল তৈরি করতে হবে যেখানে রিপোর্টের ডেটা, লেআউট, ফরম্যাট ইত্যাদি নির্ধারণ করা হবে।
- ডেটা সংগ্রহ এবং রিপোর্ট ফিলিং:
- JDBC ডেটা সোর্স ব্যবহার করে ডেটাবেস থেকে ডেটা সংগ্রহ করা হবে এবং তারপর এটি রিপোর্টে পূর্ণ করা হবে।
- রিপোর্ট এক্সপোর্ট করা:
- রিপোর্টটি শেষে কাঙ্ক্ষিত ফরম্যাটে এক্সপোর্ট করা হবে (যেমন PDF, Excel ইত্যাদি)।
ধাপ ১: JDBC DataSource তৈরি এবং ডেটাবেস সংযোগ
আপনি JDBC ব্যবহার করে ডেটাবেসে সংযোগ করতে পারেন। এখানে একটি MySQL ডেটাবেসের উদাহরণ দেওয়া হলো।
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCDataSource {
public static Connection getConnection() throws SQLException {
// MySQL JDBC URL, username, password
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
// JDBC Connection তৈরি করা
return DriverManager.getConnection(url, username, password);
}
}
এখানে, DriverManager ব্যবহার করে MySQL ডেটাবেসের সাথে সংযোগ করা হয়েছে।
ধাপ ২: JRXML ফাইল তৈরি করা
JRXML ফাইল হলো JasperReports এর টেমপ্লেট যা XML ফরম্যাটে রিপোর্টের লেআউট এবং ডেটা নির্ধারণ করে। এখানে একটি উদাহরণ দেওয়া হলো যেখানে JDBC ডেটাবেস থেকে ডেটা ফিল্ড আনা হয়েছে:
<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="userReport" language="java" pageWidth="595" pageHeight="842">
<!-- ডেটা সোর্স এবং কুয়েরি -->
<queryString>
<![CDATA[SELECT id, name, email FROM users]]>
</queryString>
<field name="id" class="java.lang.Integer"/>
<field name="name" class="java.lang.String"/>
<field name="email" 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="50" y="0" width="200" height="20"/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="250" y="0" width="250" height="20"/>
<textFieldExpression><![CDATA[$F{email}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
এখানে, queryString ট্যাগে SQL কুয়েরি লেখা হয়েছে, যা users টেবিল থেকে id, name, এবং email কলামগুলোর ডেটা সংগ্রহ করবে।
ধাপ ৩: ডেটা সংগ্রহ এবং রিপোর্ট ফিলিং
রিপোর্টটি তৈরি করার জন্য JasperFillManager ব্যবহার করে ডেটাবেস থেকে ডেটা ফিল করা হবে।
import net.sf.jasperreports.engine.*;
import java.sql.Connection;
import java.util.HashMap;
public class ReportGenerator {
public static void main(String[] args) {
try {
// JRXML ফাইল থেকে রিপোর্ট তৈরি করা
String reportPath = "path/to/your/jasperreport.jrxml";
JasperReport jasperReport = JasperCompileManager.compileReport(reportPath);
// JDBC ডেটা সোর্স থেকে ডেটা সংগ্রহ
Connection connection = JDBCDataSource.getConnection();
// প্যারামিটার (যদি থাকে)
HashMap<String, Object> parameters = new HashMap<>();
parameters.put("ReportTitle", "User Report");
// রিপোর্ট ফিলিং (ডেটা সঙ্গে)
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
// রিপোর্ট এক্সপোর্ট করা
JasperExportManager.exportReportToPdfFile(jasperPrint, "user_report.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
- JasperCompileManager.compileReport() ব্যবহার করে JRXML ফাইল কম্পাইল করা হচ্ছে।
- JDBCDataSource.getConnection() ব্যবহার করে ডেটাবেস সংযোগ করা হচ্ছে।
- JasperFillManager.fillReport() ব্যবহার করে রিপোর্টে ডেটা ফিল করা হচ্ছে।
- JasperExportManager.exportReportToPdfFile() ব্যবহার করে রিপোর্টকে PDF ফরম্যাটে এক্সপোর্ট করা হচ্ছে।
ধাপ ৪: রিপোর্ট এক্সপোর্ট করা
JasperReports বিভিন্ন ফরম্যাটে রিপোর্ট এক্সপোর্ট করতে সক্ষম। আপনি PDF, Excel, HTML, CSV ইত্যাদি ফরম্যাটে রিপোর্ট এক্সপোর্ট করতে পারেন।
PDF Example:
JasperExportManager.exportReportToPdfFile(jasperPrint, "user_report.pdf");
Excel (XLS) Example:
JRXlsExporter exporter = new JRXlsExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput("user_report.xlsx"));
exporter.exportReport();
- JDBC DataSource ব্যবহার করে JasperReports আপনাকে ডেটাবেস থেকে ডেটা নিয়ে রিপোর্ট তৈরি করার সুবিধা দেয়।
- JRXML ফাইলের মাধ্যমে রিপোর্টের ডিজাইন এবং লেআউট কনফিগার করা হয়।
- JasperReports এর মাধ্যমে আপনি সহজেই ডেটাবেস ডেটাকে PDF, Excel, HTML, CSV ফরম্যাটে এক্সপোর্ট করতে পারেন।
- JasperReports ব্যবহার করে Java EE অ্যাপ্লিকেশনগুলিতে ডাইনামিক এবং কাস্টম রিপোর্টিং সিস্টেম তৈরি করা যেতে পারে, যা প্রোডাক্টিভিটি এবং ডেটা বিশ্লেষণকে আরও সহজ এবং কার্যকরী করে তোলে।
Read more