JasperReports-এ Report Parameters একটি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এই প্যারামিটারগুলো আপনাকে রিপোর্টে ডায়নামিক ডেটা এবং কাস্টমাইজেশন প্রদান করতে সাহায্য করে। রিপোর্টের প্যারামিটারগুলি ব্যবহারকারী ইনপুট গ্রহণ, রিপোর্টের কনফিগারেশন নিয়ন্ত্রণ এবং রিপোর্টের বিভিন্ন অংশে ডেটা ফিল্টার করতে সহায়ক।
Report Parameters এর মূল ধারণা
- Parameter Definition:
- রিপোর্টের প্যারামিটার সাধারণত ব্যবহারকারী অথবা অ্যাপ্লিকেশন থেকে প্রাপ্ত ডাইনামিক ইনপুট হিসেবে রিপোর্টে প্রবাহিত হয়।
- Usage of Parameters:
- প্যারামিটারগুলি রিপোর্টের মধ্যে নির্দিষ্ট ভ্যালু বা ডেটার জন্য ফিল্টার বা শর্ত হিসেবে ব্যবহার করা হয়। যেমন: তারিখ, ব্যবহারকারী নির্বাচন, অথবা রিপোর্টের শিরোনাম।
- Data Source Filtering:
- প্যারামিটারগুলি সাধারণত রিপোর্টের জন্য SQL কোয়েরি বা ডেটা সোর্স থেকে ফিল্টারিং অপারেশন করতে ব্যবহৃত হয়।
JasperReports এ Report Parameters ব্যবহার করা
Step 1: Report Parameter Definition
রিপোর্টের প্যারামিটারগুলি JRXML ফাইলে <parameter> ট্যাগের মাধ্যমে সংজ্ঞায়িত করা হয়।
<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="SalesReport" language="java" pageWidth="595" pageHeight="842">
<!-- Define the parameter -->
<parameter name="StartDate" class="java.util.Date"/>
<parameter name="EndDate" class="java.util.Date"/>
<!-- Fields and Report Content -->
</jasperReport>
এই উদাহরণে, আমরা দুটি Date প্যারামিটার StartDate এবং EndDate তৈরি করেছি, যা রিপোর্টে ব্যবহারকারীকে তারিখের সীমা নির্বাচন করতে সাহায্য করবে।
Step 2: Parameter ব্যবহার করে SQL Query Filtering
প্যারামিটার ব্যবহার করে ডেটা সোর্স থেকে SQL কোয়েরি ফিল্টার করা যেতে পারে। উদাহরণস্বরূপ:
<queryString>
<![CDATA[
SELECT order_id, order_date, total_amount
FROM orders
WHERE order_date BETWEEN $P{StartDate} AND $P{EndDate}
]]>
</queryString>
এখানে, StartDate এবং EndDate প্যারামিটারগুলি ব্যবহার করে ডেটাবেস থেকে order_date ফিল্ডের ভিত্তিতে রিপোর্টের ডেটা ফিল্টার করা হচ্ছে।
Step 3: Report Parameters ইনপুট নেওয়া
যখন রিপোর্টটি চলবে, তখন JasperReports প্যারামিটারগুলি ব্যবহারকারী বা অ্যাপ্লিকেশন থেকে ইনপুট নিতে পারে। অ্যাপ্লিকেশন থেকে parameters প্রদান করার সময় আপনি তাদের মান পাঠাতে পারেন।
Java কোডে Parameter Pass করা:
import net.sf.jasperreports.engine.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Date;
public class JasperReportExample {
public static void main(String[] args) {
try {
// Define parameters
Map<String, Object> parameters = new HashMap<>();
parameters.put("StartDate", new Date(2023, 1, 1));
parameters.put("EndDate", new Date(2023, 12, 31));
// Compile JRXML file to Jasper report
JasperReport jasperReport = JasperCompileManager.compileReport("SalesReport.jrxml");
// Fill the report with data from database
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
// Export the report to PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, "SalesReport.pdf");
System.out.println("Report generated successfully!");
} catch (JRException e) {
e.printStackTrace();
}
}
}
এখানে, parameters.put("StartDate", new Date(2023, 1, 1)) এবং parameters.put("EndDate", new Date(2023, 12, 31)) দ্বারা প্যারামিটার ইনপুট দেওয়া হচ্ছে এবং রিপোর্টে ব্যবহৃত হচ্ছে।
Step 4: Parameter Displaying in the Report
প্যারামিটারগুলি রিপোর্টের বিভিন্ন অংশে (যেমন শিরোনাম বা ফুটার) ব্যবহার করা যেতে পারে। যেমন:
<textField>
<reportElement x="0" y="0" width="200" height="20"/>
<textFieldExpression><![CDATA["From: " + $P{StartDate} + " To: " + $P{EndDate}]]></textFieldExpression>
</textField>
এখানে, StartDate এবং EndDate প্যারামিটার রিপোর্টের শিরোনামে From: [start date] To: [end date] হিসেবে প্রদর্শিত হবে।
Report Parameters এর সুবিধা
- Dynamic Reports:
- রিপোর্ট প্যারামিটারগুলি রিপোর্টের ডেটা ফিল্টারিং এবং কাস্টমাইজেশনের জন্য সাহায্য করে। ব্যবহারকারী তার প্রয়োজন অনুযায়ী ইনপুট দিতে পারে এবং রিপোর্টটি সেই অনুযায়ী পরিবর্তিত হবে।
- Reusable Reports:
- এক ধরনের রিপোর্টের কাঠামো দিয়ে বিভিন্ন ডেটার ভিত্তিতে রিপোর্ট তৈরি করা সম্ভব, যা আরও অধিক কার্যকর এবং পুনঃব্যবহারযোগ্য।
- User-Driven Input:
- রিপোর্টের জন্য প্যারামিটার ব্যবহারকারী ইনপুট গ্রহণ করতে পারে, যেমন: তারিখ, নির্দিষ্ট আঞ্চলিক ডেটা, বা ব্যবহারকারী ভিত্তিক রিপোর্ট।
- SQL Query Filtering:
- প্যারামিটার ব্যবহার করে SQL কোয়েরি ফিল্টার করা যায়, যাতে রিপোর্টটি নির্দিষ্ট কন্ডিশন অনুযায়ী ডেটা প্রদর্শন করে।
Common Use Cases for JasperReports Parameters
- Date Range Reports:
- প্যারামিটার ব্যবহার করে ব্যবহারকারী একটি তারিখের রেঞ্জ নির্বাচন করতে পারে এবং রিপোর্টটি ঐ তারিখের মধ্যে ডেটা প্রদর্শন করবে।
- User-specific Reports:
- প্যারামিটার ব্যবহার করে ব্যবহারকারীর আইডি বা নাম ব্যবহার করে রিপোর্ট তৈরি করা যায়।
- Filtering Data:
- SQL বা অন্যান্য ডেটাবেস প্রশ্নে প্যারামিটার ব্যবহার করে ডেটা ফিল্টারিং করা সম্ভব।
- Report Customization:
- রিপোর্টের বিভিন্ন অংশে প্যারামিটার ব্যবহার করে কাস্টমাইজেশন করা যায়, যেমন রিপোর্ট শিরোনাম, ফুটার, টেবিলের কন্টেন্ট ইত্যাদি।
- Report Parameters JasperReports-এ একটি অত্যন্ত শক্তিশালী ফিচার যা রিপোর্টে ডায়নামিক ডেটা, কাস্টম ইনপুট, এবং ফিল্টারিং যুক্ত করতে ব্যবহৃত হয়।
- Parameters ব্যবহার করে আপনি SQL কোয়েরি থেকে ডেটা ফিল্টার করতে পারেন, রিপোর্ট কনফিগারেশন এবং আউটপুট কাস্টমাইজ করতে পারেন।
- JasperReports-এর প্যারামিটারগুলি রিপোর্টের ডেটা প্রসেসিং আরও নমনীয় এবং ইন্টারঅ্যাকটিভ করে তোলে, যা ব্যবহারকারীর জন্য সুবিধাজনক।
Read more