JFreeChart এবং JasperReports একত্রে ব্যবহার করার মাধ্যমে আপনি dynamic charts তৈরি করতে পারেন যা রিপোর্টের মধ্যে গ্রাফিক্যাল ডেটা উপস্থাপন করতে সক্ষম। JasperReports একটি ওপেন সোর্স রিপোর্টিং টুল যা Java অ্যাপ্লিকেশনগুলির জন্য রিপোর্ট তৈরি করতে ব্যবহৃত হয়, এবং JFreeChart চার্ট তৈরি করতে ব্যবহৃত হয়। এই দুটি টুল একসাথে ব্যবহার করে আপনি JasperReports রিপোর্টে JFreeChart-এর চার্টগুলো অন্তর্ভুক্ত করতে পারেন।
এই ইন্টিগ্রেশনটি সাধারণত JasperReports এর Chart রিপোর্ট উপাদান ব্যবহার করে করা হয়, যেখানে JFreeChart ডেটা চার্ট তৈরি করার জন্য ব্যবহৃত হয় এবং এটি রিপোর্টে সন্নিবেশিত হয়।
JasperReports এবং JFreeChart Integration: প্রয়োজনীয় লাইব্রেরি
- JasperReports লাইব্রেরি
- JFreeChart লাইব্রেরি
- JasperReports Chart Plugin (যা JFreeChart এর সাথে কাজ করে)
এটি নিশ্চিত করুন যে আপনার প্রোজেক্টে উপরের সব লাইব্রেরি এবং তাদের ডিপেনডেন্সি যুক্ত করা আছে। যদি আপনি Maven ব্যবহার করেন, তবে আপনি নিম্নলিখিত ডিপেনডেন্সি ফাইলগুলো ব্যবহার করতে পারেন।
Maven Dependency (JasperReports এবং JFreeChart)
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.16.0</version>
</dependency>
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-chart</artifactId>
<version>6.16.0</version>
</dependency>
1. JFreeChart-এ Chart তৈরি করা
প্রথমেই আপনাকে JFreeChart দিয়ে একটি চার্ট তৈরি করতে হবে যা পরবর্তীতে JasperReports রিপোর্টে অন্তর্ভুক্ত করা হবে। উদাহরণস্বরূপ, একটি Bar Chart তৈরি করা হবে।
JFreeChart তৈরি উদাহরণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
public class JFreeChartExample {
public static JFreeChart createChart() {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10, "Series1", "Jan");
dataset.addValue(20, "Series1", "Feb");
dataset.addValue(30, "Series1", "Mar");
// চার্ট তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Sales Report", // Chart Title
"Month", // X-Axis Label
"Sales", // Y-Axis Label
dataset, // Dataset
org.jfree.chart.plot.PlotOrientation.VERTICAL,
true, // Legend
true, // Tooltips
false // URLs
);
return chart;
}
}
এখানে একটি Bar Chart তৈরি করা হয়েছে যেখানে Month এবং Sales এর জন্য ডেটা রয়েছে।
2. JasperReports Report Design
এখন, JasperReports ব্যবহার করে একটি রিপোর্ট ডিজাইন করতে হবে, যেখানে JFreeChart এর তৈরি করা চার্টটি ইন্টিগ্রেট করা হবে।
JasperReports Template (JRXML) তৈরি
আপনি Jaspersoft Studio ব্যবহার করে একটি 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/jasperreports.xsd"
name="SalesReport" pageWidth="595" pageHeight="842" columnWidth="555"
columnSpacing="1" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<queryString>
<![CDATA[SELECT month, sales FROM sales_data]]>
</queryString>
<field name="month" class="java.lang.String"/>
<field name="sales" class="java.lang.Double"/>
<!-- Chart Component -->
<chart>
<chartType>BarChart</chartType>
<title>Sales Chart</title>
<categorySeries>
<categorySeriesExpression><![CDATA["$F{month}"]]></categorySeriesExpression>
<valueExpression><![CDATA[$F{sales}]]></valueExpression>
</categorySeries>
</chart>
</jasperReport>
এই JRXML ফাইলটি SQL Query ব্যবহার করে sales_data টেবিল থেকে month এবং sales কলাম নির্বাচন করছে এবং একটি Bar Chart তৈরি করছে।
3. Report Compile এবং Data Pass করা
এখন, JFreeChart দ্বারা তৈরি করা চার্টটি JasperReports রিপোর্টে যোগ করতে হবে। এটি JasperReports API ব্যবহার করে করা যাবে, যেখানে প্রথমে JasperReport কম্পাইল করা হয় এবং তারপর JFreeChart এর ডেটা সেট JasperPrint এর মধ্যে পাস করা হয়।
JFreeChart এবং JasperReports Integration Example
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.jfree.chart.JFreeChart;
import javax.swing.*;
import java.util.HashMap;
import java.util.Map;
public class JasperReportWithJFreeChart {
public static void main(String[] args) {
try {
// JasperReports রিপোর্ট কম্পাইল করা
JasperReport jasperReport = JasperCompileManager.compileReport("report_template.jrxml");
// DataSource তৈরি করা
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(fetchDataFromDatabase());
// প্যারামিটার তৈরি করা
Map<String, Object> parameters = new HashMap<>();
parameters.put("Chart", createChart()); // JFreeChart তৈরি করা এবং প্যারামিটারে সেট করা
// রিপোর্ট ফিলিটারে পাস করা
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
// রিপোর্ট দেখানো
JasperViewer.viewReport(jasperPrint, false);
} catch (JRException e) {
e.printStackTrace();
}
}
private static JFreeChart createChart() {
// এখানে JFreeChart তৈরি করা হবে, যেটি উপরের উদাহরণ থেকে এসেছে
return JFreeChartExample.createChart();
}
private static Object fetchDataFromDatabase() {
// এখানে ডাটাবেস থেকে ডেটা ফেচ করা হবে (উদাহরণস্বরূপ)
return new ArrayList<>();
}
}
ব্যাখ্যা:
- JasperCompileManager ব্যবহার করে JRXML রিপোর্ট কম্পাইল করা হচ্ছে।
- JRBeanCollectionDataSource ব্যবহার করে ডেটা পাস করা হচ্ছে, যা JasperPrint তৈরি করে।
- JFreeChart তৈরি করার জন্য JasperReport-এর প্যারামিটার হিসেবে সেট করা হয়েছে।
- রিপোর্টটি JasperViewer ব্যবহার করে দেখানো হয়েছে।
4. Chart Display in Report
JFreeChart এর তৈরি করা চার্ট রিপোর্টে সন্নিবেশিত হয় এবং আপনি JasperReports এ এটি একটি গ্রাফিক্যাল উপাদান হিসেবে দেখতে পাবেন। এই চার্টটি ডাটাবেস থেকে আনা ডেটা অনুসারে ডাইনামিকভাবে আপডেট হয় এবং রিপোর্টের অংশ হিসেবে প্রদর্শিত হয়।
সারসংক্ষেপ
JFreeChart এবং JasperReports একত্রে ব্যবহার করলে আপনি ডাইনামিকভাবে chart-based reports তৈরি করতে পারেন। JasperReports রিপোর্টের মধ্যে JFreeChart ইন্টিগ্রেট করা অনেক সহজ, যেখানে JasperReports এর Chart উপাদান ব্যবহার করে JFreeChart এর তৈরি করা চার্ট রিপোর্টে সন্নিবেশিত হয়। JFreeChart এর মাধ্যমে আপনি বিভিন্ন ধরণের চার্ট যেমন Bar Chart, Line Chart, Pie Chart ইত্যাদি তৈরি করতে পারেন এবং সেগুলিকে JasperReports রিপোর্টে অন্তর্ভুক্ত করতে পারেন।
Read more