JasperReports একটি ওপেন সোর্স এবং অত্যন্ত জনপ্রিয় Java reporting লাইব্রেরি, যা dynamic এবং static রিপোর্ট তৈরি করতে ব্যবহৃত হয়। এটি বিভিন্ন ধরনের ডাটা সোর্স থেকে ডেটা সংগ্রহ করে এবং তা ফরম্যাট করে, রিপোর্ট আকারে তৈরি করে। JasperReports পিডিএফ, এক্সেল, HTML, CSV, RTF এবং আরও অনেক ফরম্যাটে রিপোর্ট তৈরি করতে সক্ষম।
JasperReports এর মূল কনসেপ্টগুলো বেশ সোজা, কিন্তু শক্তিশালী। নিচে কিছু গুরুত্বপূর্ণ কনসেপ্টের ব্যাখ্যা দেওয়া হলো যা JasperReports ব্যবহার করার সময় আপনার কাজে আসবে।
JasperReports এর মূল কনসেপ্ট
1. Report Design (JRXML)
- JRXML হলো JasperReports-এর XML ভিত্তিক রিপোর্ট ডিজাইন ফাইল।
- এটি একটি টেমপ্লেট হিসেবে কাজ করে, যেখানে রিপোর্টের কন্টেন্ট, লেআউট, এবং ডেটা সোর্স সঠিকভাবে নির্ধারণ করা হয়।
- JRXML ফাইলের মধ্যে আপনার রিপোর্টের জন্য ডিজাইন (যেমন টেবিল, চার্ট, টেক্সট ফিল্ড ইত্যাদি) সংরক্ষিত থাকে।
উদাহরণ (JRXML ফাইল):
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:x="http://www.w3.org/2001/XMLSchema-instance"
x:version="1.0" name="simple_report" pageWidth="595" pageHeight="842">
<title>
<band height="50">
<textField>
<reportElement x="0" y="0" width="300" height="30"/>
<textFieldExpression><![CDATA["Hello, JasperReports!"]]></textFieldExpression>
</textField>
</band>
</title>
<detail>
<band height="20">
<textField>
<reportElement x="0" y="0" width="300" height="30"/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
এই JRXML ফাইলের মধ্যে:
- TextField-এর মাধ্যমে একটি টেক্সট লেখা যাবে যেমন "Hello, JasperReports!"
- ডেটা উৎস থেকে নামের তথ্য ডিপ্লয় করা হবে।
2. Compilation of JRXML into JasperReport (Jasper file)
- JRXML ফাইলটি JasperReport ফাইলে কম্পাইল করা হয়। JasperReports লাইব্রেরি এটি
.jasperফাইল হিসেবে তৈরি করে, যা রিপোর্ট এক্সিকিউশনের জন্য প্রস্তুত থাকে। - আপনি
JasperCompileManagerব্যবহার করে JRXML ফাইলটি কম্পাইল করতে পারেন।
কম্পাইলিং JRXML থেকে JasperReport:
import net.sf.jasperreports.engine.JasperCompileManager;
public class JasperCompileExample {
public static void main(String[] args) throws Exception {
// Compile the JRXML file into a JasperReport
JasperCompileManager.compileReportToFile("simple_report.jrxml");
}
}
3. Filling the Report with Data
- JasperFillManager ব্যবহার করে JasperReport এর মধ্যে ডেটা যোগ করা হয়। এটি ডেটা সোর্স (যেমন: ডাটাবেস, CSV, XML) থেকে ডেটা সংগ্রহ করে এবং রিপোর্টের মধ্যে উপস্থাপন করে।
- ডেটা ইনপুট দিতে
parametersএবং JRDataSource ব্যবহৃত হয়।
Data Filling Example:
import net.sf.jasperreports.engine.*;
import java.util.HashMap;
import java.util.Map;
public class JasperFillExample {
public static void main(String[] args) throws Exception {
// Prepare data
Map<String, Object> parameters = new HashMap<>();
parameters.put("name", "Rahim");
// Compile the report
JasperReport jasperReport = JasperCompileManager.compileReport("simple_report.jrxml");
// Fill the report with data
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters);
// Export the report to PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, "simple_report.pdf");
}
}
এই কোডে:
parametersম্যাপের মাধ্যমে ডেটা যোগ করা হয়েছে (যেমন"name": "Rahim").- তারপর JasperFillManager ব্যবহার করে রিপোর্টটি পূর্ণ করা হয়েছে এবং JasperExportManager এর মাধ্যমে পিডিএফ আউটপুট তৈরি করা হয়েছে।
4. JasperPrint (Printed Report)
- JasperPrint হল একটি অবজেক্ট যা রিপোর্টের উপস্থাপনা এবং তার প্রিন্ট আউটপুট থাকে। এটি রিপোর্টে ব্যবহৃত সমস্ত কন্টেন্ট (যেমন টেক্সট, ছবি, চার্ট) ধারণ করে।
- আপনি এটি ব্যবহার করে রিপোর্টকে প্রিন্ট বা এক্সপোর্ট করতে পারেন।
5. Exporting Reports to Different Formats
- JasperReports ব্যবহার করে আপনি রিপোর্টগুলি PDF, HTML, Excel, CSV, XML, RTF, ODT ইত্যাদি ফরম্যাটে এক্সপোর্ট করতে পারেন।
PDF Export Example:
JasperExportManager.exportReportToPdfFile(jasperPrint, "report_output.pdf");
Excel Export Example:
JRXlsExporter exporter = new JRXlsExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput("report_output.xls"));
exporter.exportReport();
JasperReports এর সুবিধা
- Flexible Report Layout:
- আপনি বিভিন্ন রিপোর্টের কন্টেন্ট ডিজাইন করতে পারবেন, যেমন টেবিল, চার্ট, বার কোড, এবং আরও অনেক গ্রাফিকাল উপাদান।
- Multiple Data Source Support:
- JasperReports বিভিন্ন ধরনের ডেটাবেস বা ডাটা সোর্স থেকে ডেটা সংগ্রহ করতে সক্ষম (JDBC, XML, CSV, JSON)।
- Export in Multiple Formats:
- JasperReports পিডিএফ, এক্সেল, HTML, CSV, RTF ইত্যাদি বিভিন্ন ফরম্যাটে রিপোর্ট এক্সপোর্ট করতে সক্ষম।
- Integration with Java Frameworks:
- JasperReports সহজে Spring, Hibernate বা অন্যান্য Java ফ্রেমওয়ার্কের সঙ্গে ইন্টিগ্রেট করা যায়।
- Subreports:
- একটি প্রধান রিপোর্টের মধ্যে subreports অন্তর্ভুক্ত করা যেতে পারে, যা আরও জটিল রিপোর্ট তৈরি করতে সাহায্য করে।
- Charting and Graphing:
- JasperReports গ্রাফিক্যাল উপাদান যেমন বার চার্ট, পাই চার্ট, এবং লাইন চার্ট তৈরি করতে সক্ষম।
JasperReports এর ব্যবহার ক্ষেত্রে
- Business Intelligence Reporting:
- JasperReports ব্যবহৃত হয় ব্যবসার ডেটা বিশ্লেষণ এবং রিপোর্ট তৈরিতে।
- Invoice Generation:
- JasperReports ব্যবহৃত হয় ইনভয়েস তৈরি করতে, যেখানে গ্রাহকের তথ্য এবং পণ্য সম্পর্কিত ডেটা অন্তর্ভুক্ত থাকে।
- Financial Reports:
- JasperReports ব্যবহৃত হয় ফাইনান্সিয়াল রিপোর্ট তৈরি করতে, যেমন বাজেট, ব্যালেন্স শিট, আয়-ব্যয় প্রতিবেদন ইত্যাদি।
- Dynamic Reporting:
- JasperReports ডাইনামিক রিপোর্ট তৈরি করতে সক্ষম যেখানে বিভিন্ন প্রোপার্টি এবং কন্টেন্ট ফিল্টার করা হয় ব্যবহারকারীর চাহিদা অনুযায়ী।
- JasperReports একটি শক্তিশালী এবং নমনীয় রিপোর্টিং টুল যা Java অ্যাপ্লিকেশন থেকে ডাইনামিক এবং স্ট্যাটিক রিপোর্ট তৈরি করতে সক্ষম।
- এটি বিভিন্ন ধরনের ডাটা সোর্স থেকে ডেটা সংগ্রহ করে এবং রিপোর্ট তৈরি করে যা PDF, Excel, HTML, CSV ইত্যাদি ফরম্যাটে এক্সপোর্ট করা যায়।
- JasperReports-এর কাস্টমাইজেশন ক্ষমতা, গ্রাফিক্যাল উপাদান এবং এক্সপোর্ট ফিচারের মাধ্যমে এটি একটি অত্যন্ত কার্যকর রিপোর্টিং সলিউশন।
JasperReports ব্যবহার করে রিপোর্ট তৈরি করার জন্য .jrxml ফাইল ব্যবহার করা হয়, যা একটি XML ফাইল যা JasperReports টেমপ্লেট ডিফাইন করে। JRXML ফাইলের মধ্যে রিপোর্টের ডিজাইন, ফিল্ড, ডেটা সোর্স, এবং অন্যান্য কনফিগারেশন নির্দিষ্ট করা হয়। JasperReports এই .jrxml ফাইলকে Jasper ফাইলে কম্পাইল করে, যা সিস্টেমে রেন্ডারিং এবং এক্সপোর্টের জন্য ব্যবহৃত হয়।
.jrxml ফাইলের গঠন
JRXML ফাইলটি মূলত একটি XML ডকুমেন্ট যা JasperReports এর জন্য প্রয়োজনীয় রিপোর্টের কাঠামো এবং উপাদানগুলি সংরক্ষণ করে। .jrxml ফাইলের মধ্যে বিভিন্ন ট্যাগ, এলিমেন্ট এবং এট্রিবিউট ব্যবহার করে রিপোর্টের বিভিন্ন অংশ সংজ্ঞায়িত করা হয়। এখানে কিছু গুরুত্বপূর্ণ অংশ এবং তাদের বিস্তারিত বর্ণনা দেয়া হলো:
1. Header Section
Header Section রিপোর্টের মেটা-ডেটা এবং কনফিগারেশন ধারণ করে। এর মধ্যে রিপোর্টের সাধারণ তথ্য যেমন নাম, ভাষা, পৃষ্ঠা আকার, কলাম স্টাইল ইত্যাদি থাকতে পারে।
উদাহরণ:
<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="ExampleReport" language="java" pageWidth="595" pageHeight="842"
columnWidth="515" columnSpacing="0" rowHeight="15">
- name: রিপোর্টের নাম।
- language: রিপোর্টের ভাষা (যেমন,
javaবাgroovy)। - pageWidth: পৃষ্ঠার প্রস্থ।
- pageHeight: পৃষ্ঠার উচ্চতা।
- columnWidth: কলামের প্রস্থ।
- columnSpacing: কলামের মধ্যে ব্যবধান।
- rowHeight: সারির উচ্চতা।
2. Query Section
এই অংশে ডেটা সোর্স থেকে তথ্য কীভাবে আনা হবে তা নির্ধারণ করা হয়। সাধারণত, এখানে SQL কুয়েরি বা অন্য কোন ডেটা সোর্সের উল্লেখ করা হয়।
উদাহরণ:
<queryString>
<![CDATA[SELECT id, name, email FROM users]]>
</queryString>
- queryString: এখানে SQL কুয়েরি বা অন্য ডেটা সোর্সের কোড লেখা হয়। এটি ডেটাবেস বা অন্যান্য সোর্স থেকে ডেটা আনার জন্য ব্যবহৃত হয়।
3. Field Definitions
এখানে, রিপোর্টের জন্য প্রাপ্ত ডেটা ফিল্ডগুলি নির্ধারণ করা হয়। এগুলি হলো ডেটাবেস ফিল্ড বা অন্যান্য উৎস থেকে প্রাপ্ত মান।
উদাহরণ:
<field name="id" class="java.lang.Integer"/>
<field name="name" class="java.lang.String"/>
<field name="email" class="java.lang.String"/>
- field: একটি ফিল্ডের জন্য নাম এবং তার ডেটা টাইপ ডিফাইন করা হয়। এই ফিল্ডগুলি রিপোর্টের মধ্যে ব্যবহার করা হয়।
4. Title Section
রিপোর্টের শিরোনাম অংশ। সাধারণত, রিপোর্টের শিরোনাম, ব্যানার বা প্রথম পৃষ্ঠার উপরের অংশে থাকা কন্টেন্ট এখানে থাকে।
উদাহরণ:
<title>
<band height="50">
<textField>
<reportElement x="0" y="0" width="100" height="50"/>
<textFieldExpression><![CDATA["Customer Report"]]></textFieldExpression>
</textField>
</band>
</title>
- title: রিপোর্টের শিরোনাম বা প্রথম পৃষ্ঠার অংশ।
- band: ব্যান্ড হল একটি রিপোর্টের অংশ যেখানে বিভিন্ন উপাদান যুক্ত করা হয় (যেমন, টেক্সট, চিত্র, বা ডেটা)।
5. Detail Section
এটি রিপোর্টের মূল অংশ, যেখানে ডেটা প্রদর্শিত হয়। ডেটা ফিল্ডগুলি এই অংশে প্রদর্শিত হয়। প্রতি রেকর্ডের জন্য একাধিক বারের জন্য এই অংশটি রেন্ডার হবে।
উদাহরণ:
<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>
- detail: এই অংশে রিপোর্টের ডেটা রেন্ডার হয়।
- textField: একটি টেক্সট ফিল্ড যা ডেটাবেস থেকে প্রাপ্ত মান প্রদর্শন করবে।
6. Summary Section
এই অংশটি সাধারণত রিপোর্টের শেষে থাকে এবং এটি মোট, গড় বা অন্য কোন আউটপুট ডেটা প্রদর্শন করতে ব্যবহৃত হয়।
উদাহরণ:
<summary>
<band height="30">
<textField>
<reportElement x="0" y="0" width="200" height="30"/>
<textFieldExpression><![CDATA["Total Customers: " + $V{TOTAL_CUSTOMERS}]]></textFieldExpression>
</textField>
</band>
</summary>
- summary: রিপোর্টের শেষে বিভিন্ন তথ্য যেমন মোট, গড় বা অন্যান্য পরিসংখ্যান থাকতে পারে।
7. Footer Section
ফুটার অংশটি রিপোর্টের শেষে থাকে, যেখানে সাধারণত পৃষ্ঠার নম্বর বা অন্যান্য মেটাডেটা প্রদর্শিত হয়।
উদাহরণ:
<footer>
<band height="30">
<textField>
<reportElement x="0" y="0" width="200" height="30"/>
<textFieldExpression><![CDATA["Page: " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
</footer>
- footer: রিপোর্টের পৃষ্ঠার নীচে থাকা অংশ।
8. Subreport Section
যখন আপনাকে একটি রিপোর্টের মধ্যে অন্য একটি রিপোর্ট ইনক্লুড করতে হয়, তখন এটি subreport অংশে যোগ করা হয়।
উদাহরণ:
<subreport>
<reportElement x="0" y="0" width="500" height="100"/>
<subreportExpression><![CDATA["subreport_example.jasper"]]></subreportExpression>
</subreport>
- subreport: সাবরিপোর্ট যা মূল রিপোর্টের মধ্যে অন্তর্ভুক্ত করা হয়।
JasperReports JRXML ফাইলের গঠন সারাংশ
- header: রিপোর্টের মেটা-ডেটা ও কনফিগারেশন।
- queryString: ডেটা সোর্স থেকে ডেটা আনার জন্য কুয়েরি।
- field: ডেটা ফিল্ড যা রিপোর্টে ব্যবহৃত হবে।
- title: রিপোর্টের শিরোনাম অংশ।
- detail: রিপোর্টের মূল অংশ যেখানে ডেটা প্রদর্শিত হয়।
- summary: রিপোর্টের পরিসংখ্যান বা মোট তথ্য।
- footer: রিপোর্টের নীচে প্রদর্শিত তথ্য, যেমন পৃষ্ঠা সংখ্যা।
- subreport: একটি রিপোর্টের মধ্যে অন্য একটি রিপোর্ট অন্তর্ভুক্ত করা।
- JRXML ফাইল হল JasperReports এর রিপোর্ট ডিজাইন টেমপ্লেট। এটি XML ফরম্যাটে থাকে এবং ডেটা সোর্স, ফিল্ড, শিরোনাম, পৃষ্ঠা বিন্যাস ইত্যাদি সম্পর্কিত তথ্য ধারণ করে।
- JasperReports-এ JRXML ফাইলগুলি কম্পাইল করে .jasper ফাইলে রূপান্তরিত হয় এবং তারপর সেগুলি রিপোর্ট রেন্ডারিং এবং এক্সপোর্টের জন্য ব্যবহৃত হয়।
- JRXML ফাইলের মাধ্যমে ডেটা ফিল্ডের কাস্টমাইজেশন, কুয়েরি, গ্রাফিক্স, সাবরিপোর্ট ইত্যাদি সহজে কনফিগার করা যায়।
JasperReports এবং JRXML ফাইল ব্যবহার করে আপনি আপনার রিপোর্টিং প্রয়োজনীয়তা পূরণ করতে পারেন, যা প্রোডাক্টিভিটি এবং ডেটা ভিজ্যুয়ালাইজেশনকে আরও সহজ এবং কার্যকর করে তোলে।
JasperReports একটি শক্তিশালী Java reporting tool, যা বিভিন্ন রিপোর্ট ডিজাইন এলিমেন্ট (band, fields, parameters, variables) ব্যবহার করে রিপোর্ট তৈরি করতে সক্ষম। এই এলিমেন্টগুলির মাধ্যমে আপনি রিপোর্টের কাঠামো তৈরি, ডেটা নিয়ন্ত্রণ এবং ফরম্যাটিং কাস্টমাইজ করতে পারেন।
1. Band:
Bands JasperReports এর রিপোর্টের মধ্যে Layout এর বিভিন্ন অংশ হিসেবে কাজ করে। প্রতিটি রিপোর্টে একাধিক ব্যান্ড থাকে, যা রিপোর্টের কন্টেন্টের বিভিন্ন বিভাগকে নির্দেশ করে। ব্যান্ডগুলো রিপোর্টে ডেটা ভিউ বা কন্টেন্ট আউটপুট করার জন্য ব্যবহৃত হয়।
বিভিন্ন ধরনের ব্যান্ড:
- Title: রিপোর্টের শিরোনাম বা হেডার অংশ। এটি সাধারণত একবারেই থাকে এবং রিপোর্টের শুরুতে দেখানো হয়।
- Page Header: প্রতিটি পৃষ্ঠার শিরোনাম, যা প্রতিটি পৃষ্ঠার উপরে প্রদর্শিত হয়।
- Column Header: টেবিল বা ডেটা কলামের শিরোনাম।
- Detail: রিপোর্টের মূল অংশ যেখানে ডেটা দেখানো হয়। এটি ডেটা সোর্সের উপর ভিত্তি করে পুনরাবৃত্তি হতে থাকে।
- Column Footer: কলামের নীচের অংশে প্রদর্শিত হয়, সাধারণত টোটাল বা কোন গণনা।
- Page Footer: পৃষ্ঠার নিচে প্রদর্শিত হয়, যেমন পেজ নম্বর বা ডেটা।
- Summary: রিপোর্টের শেষ অংশ, সাধারণত রিপোর্টের শেষে উপসংহার বা পরিসংখ্যানের জন্য ব্যবহৃত হয়।
Band উদাহরণ:
<band height="50">
<textElement>
<font size="20" />
</textElement>
<staticText>
<reportElement x="0" y="0" width="200" height="30" />
<text><![CDATA[Report Title]]></text>
</staticText>
</band>
এখানে, <band> ট্যাগের মধ্যে height অ্যাট্রিবিউট দিয়ে ব্যান্ডের উচ্চতা নির্ধারণ করা হয়, এবং <staticText> এর মাধ্যমে টেক্সট যোগ করা হয়। এটি রিপোর্টের শিরোনাম হিসেবে কাজ করবে।
2. Fields:
Fields হল রিপোর্টের মধ্যে ডেটা ধারণকারী অংশ। এই ফিল্ডগুলি সাধারণত ডেটা সোর্স (যেমন ডেটাবেস) থেকে আসে এবং রিপোর্টের ডিটেইল বা টেবিল অংশে প্রদর্শিত হয়। ফিল্ড ডেটা বিভিন্ন সেল বা কলামে দেখানোর জন্য ব্যবহৃত হয়।
Field উদাহরণ:
<field name="customerName" class="java.lang.String">
<fieldDescription><![CDATA[Customer Name]]></fieldDescription>
</field>
<textField>
<reportElement x="0" y="0" width="200" height="30"/>
<textFieldExpression><![CDATA[$F{customerName}]]></textFieldExpression>
</textField>
<field>: এটি একটি ডেটা ফিল্ডের ঘোষণা, যেটি একটি নির্দিষ্ট ডেটা টাইপ ধারণ করে।$F{customerName}: এটি রিপোর্টের ডিটেইল ব্যান্ডেcustomerNameফিল্ডের মান ধারণ করবে এবং আউটপুট করবে।
3. Parameters:
Parameters হল বিশেষ পরিবর্তনশীল যা রিপোর্টে ডাইনামিক তথ্য সরবরাহ করে। আপনি যখন রিপোর্টটি জেনারেট করবেন, তখন আপনি এই প্যারামিটারগুলিকে বিভিন্ন ইনপুট প্রদান করতে পারেন (যেমন ব্যবহারকারীর দ্বারা প্রদত্ত মান বা সার্ভার থেকে প্রাপ্ত মান)।
Parameter উদাহরণ:
<parameter name="startDate" class="java.util.Date"/>
<textField>
<reportElement x="0" y="0" width="200" height="30"/>
<textFieldExpression><![CDATA[$P{startDate}]]></textFieldExpression>
</textField>
<parameter>: এটি একটি প্যারামিটার যা রিপোর্টে মান প্রদান করবে।$P{startDate}: এই এক্সপ্রেশনটি রিপোর্টে প্রদত্ত প্যারামিটারstartDateএর মান ব্যবহার করবে।
প্যারামিটারগুলি সাধারণত ব্যবহারকারীর ইনপুট বা রিপোর্ট চলাকালীন আপডেট হওয়া মান গ্রহণ করে।
4. Variables:
Variables হল বিশেষ ধরনের তথ্য যা রিপোর্টে গণনা বা পরিসংখ্যানের জন্য ব্যবহৃত হয়। আপনি যদি ডেটা সেটের উপর কোনো গণনা (যেমন গড়, সর্বোচ্চ, সর্বনিম্ন মান, টোটাল) করতে চান, তাহলে আপনি ভেরিয়েবল ব্যবহার করবেন।
Variable উদাহরণ:
<variable name="totalAmount" class="java.lang.Double" calculation="Sum">
<variableExpression><![CDATA[$F{amount}]]></variableExpression>
</variable>
<textField>
<reportElement x="0" y="0" width="200" height="30"/>
<textFieldExpression><![CDATA[$V{totalAmount}]]></textFieldExpression>
</textField>
<variable>: এটি একটি ভেরিয়েবল ডিক্লেয়ার করে, যেমন এখানেtotalAmountভেরিয়েবলটিamountফিল্ডের টোটালকে হিসাব করছে।$V{totalAmount}: এটি রিপোর্টে টোটাল অ্যামাউন্ট প্রদর্শন করবে।
Common Calculation Types in Variables:
- Sum: সমস্ত মানের যোগফল।
- Average: গড় মান।
- Count: কতগুলি এন্ট্রি আছে।
- Min/Max: সর্বনিম্ন বা সর্বোচ্চ মান।
সংক্ষেপে:
| Element | Description |
|---|---|
| Band | রিপোর্টের লেআউটের অংশ যা বিভিন্ন ডেটা বা কন্টেন্ট প্রদর্শন করে |
| Fields | রিপোর্টের মধ্যে থাকা ডেটা, সাধারণত ডেটাবেস বা অন্যান্য সোর্স থেকে আসে |
| Parameters | রিপোর্টে ডাইনামিক মান প্রদানকারী পরিবর্তনশীল |
| Variables | গণনা বা পরিসংখ্যানের জন্য ব্যবহৃত ডেটা ভেরিয়েবল |
JasperReports এ রিপোর্ট ডিজাইনে Bands, Fields, Parameters, এবং Variables গুরুত্বপূর্ণ ভূমিকা পালন করে। এই চারটি উপাদান রিপোর্টের গঠন, ডেটা প্রসেসিং এবং আউটপুট কাস্টমাইজ করার জন্য অত্যন্ত গুরুত্বপূর্ণ। JasperReports ব্যবহার করে আপনি ডাইনামিক রিপোর্ট তৈরি করতে পারেন, যা বিভিন্ন ধরণের ডেটা এবং কাস্টম লজিকের সাথে একত্রে কাজ করতে সক্ষম।
JasperReports হল একটি জনপ্রিয় ওপেন সোর্স রিপোর্টিং টুল যা Java অ্যাপ্লিকেশনগুলির জন্য রিপোর্ট তৈরি এবং কাস্টমাইজ করতে ব্যবহৃত হয়। Jaspersoft Studio হল একটি গ্রাফিক্যাল ডিজাইনার যা JasperReports এর জন্য রিপোর্ট তৈরি করতে সাহায্য করে, এবং এটি Eclipse প্ল্যাটফর্মের উপর ভিত্তি করে তৈরি।
এই গাইডে, আমরা Jaspersoft Studio ব্যবহার করে JasperReports এর প্রথম রিপোর্ট তৈরি করার ধাপগুলো আলোচনা করব।
ধাপ ১: Jaspersoft Studio ইনস্টলেশন
- Jaspersoft Studio ডাউনলোড করুন:
- Jaspersoft Studio Download Link থেকে Jaspersoft Studio ডাউনলোড করুন।
- আপনার অপারেটিং সিস্টেমের জন্য সঠিক ভার্সন নির্বাচন করুন (Windows, Mac, বা Linux)।
- Jaspersoft Studio ইনস্টল করুন:
- ডাউনলোড করা ফাইলটি রান করুন এবং ইনস্টলেশন প্রক্রিয়া সম্পন্ন করুন।
- Eclipse IDE এর সঙ্গে একত্রিত করা:
- যদি Eclipse IDE ইনস্টল করা থাকে, তাহলে Jaspersoft Studio Eclipse প্লাগইন হিসাবে ইনস্টল করা যেতে পারে।
ধাপ ২: নতুন রিপোর্ট তৈরি করা
- Jaspersoft Studio চালু করুন:
- Jaspersoft Studio চালু করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন।
- নতুন রিপোর্ট তৈরি করুন:
- File মেনু থেকে New > Jasper Report নির্বাচন করুন।
- রিপোর্ট টেমপ্লেট নির্বাচন করুন:
- পরবর্তী উইন্ডোতে, আপনি একটি Report Template নির্বাচন করতে পারবেন (যেমন Blank, Columnar, etc.)।
- Blank A4 নির্বাচন করুন এবং Next এ ক্লিক করুন।
- ডেটা সংযোগ তৈরি করা:
- ডেটা সোর্সের জন্য New JDBC Data Source নির্বাচন করুন (এটি তখন হবে যদি আপনি ডেটাবেজ থেকে ডেটা ব্যবহার করতে চান)।
- আপনি CSV, Excel, XML ফাইল, বা Database সংযোগ থেকে ডেটা যোগ করতে পারবেন।
- এই উদাহরণে, আমরা Sample Database ব্যবহার করব (যদি আপনি ডেটাবেজ থেকে ডেটা ব্যবহার করতে চান)।
- ডেটা সেটিংস কনফিগার করুন:
- JDBC connection details (যেমন: হোস্ট, ইউজারনেম, পাসওয়ার্ড, ডেটাবেস নাম) পূর্ণ করুন এবং Test Connection ক্লিক করে পরীক্ষা করুন।
ধাপ ৩: রিপোর্ট ডিজাইন করা
- রিপোর্টের ডিজাইন উইন্ডো:
- একবার আপনি ডেটা সংযোগ সঠিকভাবে কনফিগার করলে, রিপোর্ট ডিজাইন উইন্ডো ওপেন হবে যেখানে আপনি রিপোর্টের কাঠামো তৈরি করতে পারবেন।
- ফিল্ড যোগ করা:
- Dataset প্যানেল থেকে Fields সেকশনে যান এবং আপনার ডেটা ফিল্ড নির্বাচন করুন (যেমন:
id,name,salary, ইত্যাদি)। - ফিল্ডগুলো টেনে রিপোর্ট ডিজাইনে রাখুন।
- Dataset প্যানেল থেকে Fields সেকশনে যান এবং আপনার ডেটা ফিল্ড নির্বাচন করুন (যেমন:
- ফিল্ড ফরম্যাটিং এবং সাজানো:
- প্রতিটি ফিল্ডের জন্য কাস্টম ফরম্যাট এবং স্টাইল সেট করতে পারেন (যেমন: Bold, Italic, Font Size, ইত্যাদি)।
- ফিল্ডের নাম এবং আউটপুট ডিসপ্লে সাজানোর জন্য টেবিল, লাইন, বক্স ইত্যাদি ব্যবহার করুন।
- গ্রাফিক্স এবং ছবি যোগ করা:
- আপনি রিপোর্টে logo, charts, এবং images যোগ করতে পারেন।
- Image টুল দিয়ে একটি ইমেজ যোগ করুন, যেমন কোম্পানির লোগো।
ধাপ ৪: রিপোর্ট প্রিভিউ এবং এক্সপোর্ট
- প্রিভিউ:
- রিপোর্ট ডিজাইন করার পরে, আপনি Preview ট্যাবে গিয়ে রিপোর্টের প্রিভিউ দেখতে পারেন। এতে আপনি রিপোর্টের আউটপুট দেখতে পাবেন এবং নিশ্চিত হতে পারবেন যে সবকিছু সঠিকভাবে প্রদর্শিত হচ্ছে।
- এক্সপোর্ট:
- রিপোর্টটি বিভিন্ন ফরম্যাটে এক্সপোর্ট করতে পারবেন:
- HTML
- Excel (XLS)
- CSV
- XML
- এক্সপোর্ট করার জন্য Export মেনু থেকে আপনার পছন্দের ফরম্যাট নির্বাচন করুন।
- রিপোর্টটি বিভিন্ন ফরম্যাটে এক্সপোর্ট করতে পারবেন:
ধাপ ৫: রিপোর্টের কোড তৈরি করা (Java Integration)
- JasperReports Java API ব্যবহার:
- JasperReports এর সাথে Java অ্যাপ্লিকেশন যুক্ত করতে, আপনাকে রিপোর্টের
.jrxmlফাইল কম্পাইল করে.jasperফাইলে রূপান্তর করতে হবে। - নিচে একটি সাধারণ Java কোড উদাহরণ দেওয়া হলো যা রিপোর্ট তৈরি করবে:
- JasperReports এর সাথে Java অ্যাপ্লিকেশন যুক্ত করতে, আপনাকে রিপোর্টের
import net.sf.jasperreports.engine.*;
import java.util.HashMap;
import java.util.Map;
public class JasperReportExample {
public static void main(String[] args) {
try {
// রিপোর্টের .jasper ফাইল তৈরি করা
JasperReport jasperReport = JasperCompileManager.compileReport("report_template.jrxml");
// রিপোর্টে প্রয়োজনীয় প্যারামিটার (যদি থাকে) সেট করা
Map<String, Object> parameters = new HashMap<>();
parameters.put("ReportTitle", "Employee Report");
// ডেটা সোর্স সেট করা (এটি ডেটাবেস, CSV, বা XML হতে পারে)
JRDataSource dataSource = new JRBeanCollectionDataSource(getEmployeeData());
// রিপোর্ট পূর্ণাঙ্গভাবে তৈরি করা
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
// রিপোর্টের আউটপুট (PDF ফরম্যাটে)
JasperExportManager.exportReportToPdfFile(jasperPrint, "EmployeeReport.pdf");
System.out.println("Report Generated Successfully!");
} catch (JRException e) {
e.printStackTrace();
}
}
// ডেটা (এখানে, আমরা কিছু স্যাম্পল ডেটা ব্যবহার করেছি)
private static List<Employee> getEmployeeData() {
List<Employee> employeeList = new ArrayList<>();
employeeList.add(new Employee(1, "John Doe", "HR"));
employeeList.add(new Employee(2, "Jane Smith", "Finance"));
return employeeList;
}
}
এখানে, Employee হল একটি সিম্পল Java ক্লাস, যার মধ্যে id, name, এবং department ফিল্ড রয়েছে। এই ডেটা JRBeanCollectionDataSource এর মাধ্যমে রিপোর্টে পাঠানো হয়েছে।
- JasperReports এবং Jaspersoft Studio ব্যবহার করে আপনি সহজেই রিপোর্ট তৈরি করতে পারেন।
- Jaspersoft Studio একটি গ্রাফিক্যাল টুল যা আপনাকে রিপোর্ট ডিজাইন, কাস্টমাইজেশন এবং এক্সপোর্ট ফরম্যাট সমর্থন করে।
- JasperReports Java অ্যাপ্লিকেশনের সাথে ইন্টিগ্রেট করে dynamic reports তৈরি করতে সহায়তা করে।
- রিপোর্টের মধ্যে charting, subreports, filters, এবং parameterized reports যোগ করা যেতে পারে।
এই উদাহরণটি দেখিয়ে দেয় কিভাবে Jaspersoft Studio ব্যবহার করে প্রথম রিপোর্ট তৈরি এবং Java এর মাধ্যমে রিপোর্ট জেনারেট করা যায়।
JasperReports হল একটি ওপেন সোর্স রিপোর্ট জেনারেশন লাইব্রেরি যা Java অ্যাপ্লিকেশন থেকে রিপোর্ট তৈরি করতে ব্যবহৃত হয়। এটি ডেটা রিপোর্ট তৈরি, সাজানো, ফরম্যাট করা এবং বিভিন্ন আউটপুট ফরম্যাটে (যেমন PDF, HTML, XLS, CSV ইত্যাদি) রেন্ডার করার জন্য ব্যবহৃত হয়। JasperReports বিভিন্ন ধরনের রিপোর্ট তৈরি করতে সক্ষম, যেমন: Tabular Reports, Summary Reports, Chart Reports, Invoice Reports, এবং আরও অনেক।
JasperReports রিপোর্ট তৈরি করার জন্য একটি বিশেষ কাঠামো অনুসরণ করে। চলুন দেখি JasperReports-এর মূল কাঠামো এবং কাজের ধাপ।
JasperReports এর মূল কাঠামো
JasperReports-এর মূল কাঠামো তিনটি প্রধান অংশে বিভক্ত:
- JRXML (JasperReports Markup Language):
- JRXML হল JasperReports-এর ডিজাইনার ফাইল ফরম্যাট। এটি একটি XML ফাইল যা রিপোর্টের কাঠামো, ডেটা, এবং স্টাইল সংরক্ষণ করে। এটি রিপোর্টের ডিজাইন সংজ্ঞায়িত করে, যেমনঃ কোন ডেটা ব্যবহার করতে হবে, রিপোর্টের layout কেমন হবে, কেমন ফরম্যাটে আউটপুট হবে ইত্যাদি।
- রিপোর্ট তৈরি করার জন্য Jaspersoft Studio (একটি গ্রাফিকাল টুল) ব্যবহার করে JRXML ফাইল তৈরি করা যায়।
- JasperReports Library (JAR files):
- এই লাইব্রেরি JasperReports এর সমস্ত রিপোর্ট জেনারেশন কাজ পরিচালনা করে। এটি ডেটা ফরম্যাট করার, রিপোর্ট কম্পাইল এবং ফরম্যাট রেন্ডার করার জন্য ব্যবহৃত হয়।
- JasperReport লাইব্রেরি ব্যবহৃত হয়ে JRXML ফাইলকে Jasper File (.jasper) ফরম্যাটে কম্পাইল করে।
- Jasper File (.jasper):
- এটি কম্পাইল করা JRXML ফাইল, যা JasperReports লাইব্রেরি দ্বারা পরবর্তী পদক্ষেপে রেন্ডার করা হয় (যেমন PDF, Excel, CSV ইত্যাদি)।
- DataSource:
- JasperReports ডেটা সোর্স থেকে তথ্য সংগ্রহ করে, যেমন JDBC, XML, JavaBeans, CSV, ইত্যাদি। রিপোর্টের জন্য প্রয়োজনীয় ডেটা উৎস থেকে তথ্য সংগ্রহ করা হয় এবং রিপোর্টে প্রাসঙ্গিকভাবে প্রক্রিয়া করা হয়।
- Report Output (PDF, Excel, HTML, CSV):
- JasperReports আউটপুট ফরম্যাটে রিপোর্ট তৈরি করতে পারে, যেমন PDF, HTML, XLS, CSV, RTF ইত্যাদি। রিপোর্ট তৈরি হওয়ার পর ব্যবহারকারীর চাহিদা অনুসারে এই আউটপুট ফরম্যাটে রেন্ডার করা হয়।
JasperReports কাজের ধাপ
JasperReports এর কাজের ধাপ সাধারণত নিচের পদক্ষেপগুলো অনুসরণ করে:
- JRXML ফাইল ডিজাইন করা:
- প্রথমে একটি JRXML ফাইল তৈরি করতে হয়, যা রিপোর্টের কাঠামো সংজ্ঞায়িত করবে।
- Jaspersoft Studio বা iReport Designer ব্যবহার করে আপনি JRXML ফাইল ডিজাইন করতে পারেন। এই টুলগুলোর মাধ্যমে আপনি রিপোর্টের ডিজাইন করতে পারেন এবং সেই অনুযায়ী ডেটা সোর্স সেট করতে পারেন।
- JRXML ফাইল কম্পাইল করা:
- JasperReports লাইব্রেরি দ্বারা JRXML ফাইলটি Jasper ফাইলে কম্পাইল করতে হয়। এটি মূলত .jasper ফরম্যাটে রূপান্তরিত হয় যা রিপোর্ট রেন্ডারিং প্রক্রিয়ার জন্য ব্যবহৃত হয়।
- এটি সাধারণত JasperCompileManager.compileReportToFile() ব্যবহার করে করা হয়।
- ডেটা সোর্স সংযুক্ত করা:
- রিপোর্টের জন্য প্রয়োজনীয় ডেটা সোর্স (যেমন: JDBC, JavaBeans, XML) সংযুক্ত করতে হয়। আপনি JDBC এর মাধ্যমে ডেটাবেজ থেকে ডেটা সংগ্রহ করতে পারেন অথবা JavaBeans ব্যবহার করতে পারেন।
- এই ধাপে আপনি রিপোর্টের জন্য ডেটা ফিল্টার করতে পারেন এবং প্রয়োজনীয় ডেটা পরিসংখ্যান তৈরি করতে পারেন।
- রিপোর্ট ফিলিং এবং এক্সিকিউশন:
- রিপোর্টটি ফিল এবং এক্সিকিউট করার জন্য JasperFillManager ব্যবহার করা হয়।
- এটি রিপোর্টের উপাদান (ফিল্ড, টেক্সট, গ্রাফিক্স) ডেটা সোর্স থেকে পূর্ণ করে।
- রিপোর্ট আউটপুট জেনারেশন:
- রিপোর্টটি প্রস্তুত হওয়ার পর, আপনি সেটি PDF, HTML, XLS, CSV ইত্যাদি ফরম্যাটে রেন্ডার করতে পারেন।
- JasperExportManager.exportReportToPdfFile() ব্যবহার করে আপনি PDF আউটপুট তৈরি করতে পারেন।
JasperReports Workflow Example:
- JRXML File Creation (Report Design):
- Jaspersoft Studio ব্যবহার করে JRXML ফাইল ডিজাইন করা হবে। এখানে আপনি রিপোর্টের Layout, ফিল্ড, ফন্ট, রং, গ্রাফিক্স ইত্যাদি ডিজাইন করবেন।
Compile the JRXML to Jasper File:
- JasperCompileManager ব্যবহার করে JRXML ফাইল কম্পাইল করুন।
String sourceFileName = "report.jrxml"; JasperReport jasperReport = JasperCompileManager.compileReport(sourceFileName);Fill the Report with Data:
- JasperFillManager ব্যবহার করে রিপোর্টে ডেটা ফিল করুন (এটা মূলত রিপোর্টের আউটপুট গঠন করবে)।
Map<String, Object> parameters = new HashMap<>(); JRDataSource dataSource = new JREmptyDataSource(); // Example data source JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);Export the Report to Output Formats:
- রিপোর্টটি বিভিন্ন আউটপুট ফরম্যাটে এক্সপোর্ট করা যেতে পারে। যেমন PDF, HTML, বা Excel।
// Export to PDF JasperExportManager.exportReportToPdfFile(jasperPrint, "report_output.pdf");
JasperReports হল একটি শক্তিশালী এবং ওপেন সোর্স রিপোর্ট জেনারেশন টুল যা Java অ্যাপ্লিকেশন থেকে রিপোর্ট তৈরি করার জন্য ব্যবহৃত হয়। এর মূল কাঠামো হচ্ছে JRXML ফাইল, Jasper ফাইল, DataSource এবং Report Output। JasperReports-এর কাজের ধাপগুলি রিপোর্ট ডিজাইন, কম্পাইল, ফিলিং এবং এক্সিকিউশন প্রক্রিয়া অনুসরণ করে। এটি Jaspersoft Studio এর মাধ্যমে রিপোর্ট ডিজাইন করা এবং Java API ব্যবহার করে রিপোর্ট রেন্ডার ও এক্সপোর্ট করা সম্ভব।
Read more