JasperReports Expression Language (JRE) হল একটি ভাষা যা JasperReports-এ রিপোর্ট তৈরি করার সময় ডাইনামিক এক্সপ্রেশন তৈরি এবং ব্যবহারের জন্য ব্যবহৃত হয়। JRE-এর মাধ্যমে আপনি রিপোর্টের বিভিন্ন অংশে (যেমন ফিল্ড, গ্রুপ, টোটাল, সাবটোটাল, কন্ডিশনাল ফরম্যাটিং ইত্যাদি) ডাইনামিক মান তৈরি এবং পরিচালনা করতে পারেন।
JasperReports রিপোর্টে এক্সপ্রেশন একটি Java এক্সপ্রেশন হিসেবে কাজ করে যা রিপোর্টের তৈরি হওয়া সময় নির্ধারণ করা হয় এবং রিপোর্টের উপাদানগুলোতে প্রয়োগ করা হয়। এই এক্সপ্রেশনগুলো রিপোর্টের ফিল্ড ভ্যালু, কন্ডিশনাল লজিক, গণনা, ফরম্যাটিং ইত্যাদি নির্ধারণ করতে ব্যবহৃত হয়।
JasperReports Expression Language এর মূল উপাদান
ডেটা ফিল্ডের এক্সপ্রেশন:
- রিপোর্টে থাকা ডেটা ফিল্ডগুলো থেকে ডেটা আনার জন্য এক্সপ্রেশন ব্যবহার করা হয়। এক্সপ্রেশন
$F{field_name}ব্যবহার করে ডেটা ফিল্ডের মান অ্যাক্সেস করা হয়।
উদাহরণ:
<textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>- রিপোর্টে থাকা ডেটা ফিল্ডগুলো থেকে ডেটা আনার জন্য এক্সপ্রেশন ব্যবহার করা হয়। এক্সপ্রেশন
ভ্যারিয়েবল এক্সপ্রেশন:
- রিপোর্টের ভ্যারিয়েবল এবং ক্যালকুলেশনগুলি হিসাব করতে এক্সপ্রেশন ব্যবহার করা হয়। এর মধ্যে সামাজিক মোট, গড়, মোট সংখ্যা ইত্যাদি গণনা করা হতে পারে।
উদাহরণ:
<variable name="total" class="java.lang.Double" calculation="Sum"> <variableExpression><![CDATA[$F{amount}]]></variableExpression> </variable>- জাভা কোড ব্যবহার:
- এক্সপ্রেশনে Java কোড ব্যবহার করা হয় যা ডেটা ফিল্টারিং, কাস্টম ক্যালকুলেশন, এবং কন্ডিশনাল লজিক সমর্থন করে। Java কোড ব্যবহার করে ডাইনামিক ডেটা বা ফিল্ড ভ্যালুতে পরিবর্তন আনা যায়।
অপারেটর এবং কন্ডিশনাল লজিক:
if-elseস্টেটমেন্ট,and,or,notইত্যাদি লজিক্যাল অপারেটর ব্যবহার করা হয় এক্সপ্রেশনে কন্ডিশনাল লজিক প্রয়োগ করতে।
উদাহরণ:
<textFieldExpression><![CDATA[($F{amount} > 100) ? "High" : "Low"]]></textFieldExpression>
JasperReports এর Expression Language এর ব্যবহার
1. রিপোর্ট ফিল্ডের এক্সপ্রেশন:
প্রতিটি রিপোর্ট ফিল্ডের মান নির্ধারণ করতে আপনি এক্সপ্রেশন ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি যদি একটি "user" ফিল্ডের মান প্রিন্ট করতে চান, তবে এর জন্য এক্সপ্রেশন ব্যবহার করা হবে।
<textFieldExpression><![CDATA[$F{user}]]></textFieldExpression>
এখানে, $F{user} একটি ফিল্ড এক্সপ্রেশন যা ডেটাবেস বা ডেটা সোর্স থেকে প্রাপ্ত user নামক ফিল্ডের মান পাঠ করবে।
2. গণনা এবং ভ্যারিয়েবল এক্সপ্রেশন:
আপনি রিপোর্টের ভ্যারিয়েবল ব্যবহার করে গণনা করতে পারেন, যেমন সামগ্রিক মোট বা গড়, ইত্যাদি।
<variable name="totalAmount" class="java.lang.Double" calculation="Sum">
<variableExpression><![CDATA[$F{amount}]]></variableExpression>
</variable>
এখানে, $F{amount} একটি ফিল্ড এক্সপ্রেশন যা amount ফিল্ডের মান নিয়ে সামগ্রিক মোট হিসাব করে।
3. কন্ডিশনাল এক্সপ্রেশন:
JasperReports-এর মধ্যে কন্ডিশনাল এক্সপ্রেশন ব্যবহারের মাধ্যমে আপনি বিভিন্ন শর্তের উপর ভিত্তি করে ডেটার মান পরিবর্তন করতে পারেন।
<textFieldExpression><![CDATA[($F{amount} > 1000) ? "High" : "Low"]]></textFieldExpression>
এখানে, যদি $F{amount} এর মান 1000 এর বেশি হয়, তবে তা "High" প্রদর্শন করবে, এবং না হলে "Low" প্রদর্শন করবে।
4. অ্যারে এবং কলাম এক্সপ্রেশন:
JasperReports-এ আপনি অ্যারে এবং কলাম এক্সপ্রেশন ব্যবহার করে একাধিক ডেটা মান কনভেনিয়েন্টলি প্রক্রিয়া করতে পারেন।
<textFieldExpression><![CDATA[$F{products}[0]]]></textFieldExpression>
এখানে, এটি প্রথম products অ্যারে থেকে মান দেখাবে।
5. ভ্যারিয়েবল ব্যবহার এবং গণনা:
একটি ভ্যারিয়েবল তৈরি করে আপনি একটি নির্দিষ্ট ক্যালকুলেশন বা গণনা করতে পারেন, যেমন মোট গড়, সংখ্যা ইত্যাদি।
<variable name="averageAmount" class="java.lang.Double" calculation="Average">
<variableExpression><![CDATA[$F{amount}]]></variableExpression>
</variable>
এখানে, এটি $F{amount} ফিল্ডের গড় বের করবে।
JasperReports Expression Language এর বিভিন্ন অংশ
- ডেটা ফিল্ড এক্সপ্রেশন:
- $F{field_name}: এটি ডেটা সোর্স থেকে প্রাপ্ত মানের উপর ভিত্তি করে রিপোর্টে ফিল্ডের মান প্রদর্শন করে।
- পারামিটার এক্সপ্রেশন:
- $P{parameter_name}: এটি রিপোর্টে ব্যবহার করা পারামিটার মান অ্যাক্সেস করে।
- ভ্যারিয়েবল এক্সপ্রেশন:
- $V{variable_name}: এটি রিপোর্টের মধ্যে কাস্টম ভ্যারিয়েবলের মান অ্যাক্সেস করে।
- সিস্টেম প্রপার্টি এক্সপ্রেশন:
- $S{system_property_name}: এটি রিপোর্টের মধ্যে সিস্টেমের প্রপার্টি মান অ্যাক্সেস করে।
- অপারেটর এবং লজিক্যাল এক্সপ্রেশন:
==,!=,>,<,&&,||: এটি কমপ্লেক্স কন্ডিশন এবং ফিল্টারিং লজিক চালায়।
JasperReports Expression Examples
- ফিল্ডের মানের উপর ভিত্তি করে কন্ডিশনাল এক্সপ্রেশন:
<textFieldExpression><![CDATA[($F{quantity} > 10) ? "Stock is High" : "Stock is Low"]]></textFieldExpression>
- ভ্যারিয়েবল এক্সপ্রেশন ব্যবহার করা:
<variable name="totalCost" class="java.lang.Double" calculation="Sum">
<variableExpression><![CDATA[$F{cost}]]></variableExpression>
</variable>
- পারামিটার ব্যবহার করা:
<textFieldExpression><![CDATA[$P{discount} * $F{price}]]></textFieldExpression>
- ফিল্ডের মান সন্নিবেশিত করা:
<textFieldExpression><![CDATA["Product: " + $F{productName}]]></textFieldExpression>
- JasperReports Expression Language (JRE) আপনাকে ডাইনামিকভাবে রিপোর্টে ডেটা প্রক্রিয়া করার সুযোগ দেয়।
- আপনি এক্সপ্রেশন ব্যবহার করে ডেটা ফিল্ড, পারামিটার, ভ্যারিয়েবল, সিস্টেম প্রপার্টি, অপারেটর, এবং লজিক্যাল এক্সপ্রেশন ব্যবহার করতে পারেন।
- এক্সপ্রেশনগুলির মাধ্যমে আপনি কন্ডিশনাল লজিক, কাস্টম গণনা এবং ডেটা ম্যানিপুলেশন করতে পারেন, যা রিপোর্ট ডিজাইন ও কাস্টমাইজেশনের ক্ষেত্রে অত্যন্ত কার্যকর।
JasperReports-এর এক্সপ্রেশন ভাষা ব্যবহার করে আপনি রিপোর্টের আউটপুটকে আরও কার্যকর এবং ডাইনামিকভাবে কাস্টমাইজ করতে পারেন, যা বড় ও জটিল রিপোর্টিং সিস্টেমের জন্য অপরিহার্য।
Read more