JasperReports একটি শক্তিশালী রিপোর্টিং টুল যা Java অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়। তবে, রিপোর্ট তৈরি ও এক্সপোর্ট করার জন্য অনেক সময় বিভিন্ন সময়সূচীতে রিপোর্টগুলি চালানো বা scheduled করা প্রয়োজন হয়। JasperReports-এ রিপোর্ট সিডিউলিং (Report Scheduling) এর মাধ্যমে আপনি নির্দিষ্ট সময় বা নির্দিষ্ট ইভেন্টে রিপোর্টটি অটোমেটিক্যালি তৈরি এবং এক্সপোর্ট করতে পারেন। এটি বিশেষভাবে ব্যবসায়িক রিপোর্টিং, ডেটা অ্যানালিটিক্স, এবং অন্যান্য কাজে উপকারী যেখানে নিয়মিতভাবে রিপোর্ট তৈরি এবং প্রেরণ করা প্রয়োজন।
JasperReports-এ রিপোর্ট সিডিউলিং প্রধানত JasperReports Server বা Jaspersoft Studio ব্যবহার করে করা হয়। JasperReports Server এ এটি আরও শক্তিশালী ফিচার হিসেবে আসে, যেখানে আপনি রিপোর্টগুলোকে সিডিউল করতে পারেন এবং রিপোর্ট আউটপুট নির্দিষ্ট সময় অনুযায়ী পাঠাতে পারেন।
JasperReports Server তে রিপোর্ট Scheduling
JasperReports Server-এ রিপোর্ট সিডিউল করা খুবই সহজ এবং সরাসরি ব্যবহারকারীদের কাছে রিপোর্টের জন্য একাধিক সময়সূচি নির্ধারণের সুবিধা দেয়। এটি JasperReports Server এর Scheduler ফিচার ব্যবহার করে করা হয়, যেখানে আপনি রিপোর্টটি একাধিক ফরম্যাটে (PDF, Excel, CSV, HTML ইত্যাদি) নির্দিষ্ট সময় বা তারিখে রান করতে পারেন।
JasperReports Server এ রিপোর্ট Scheduling করার ধাপসমূহ:
- রিপোর্ট তৈরি করা:
- প্রথমে, আপনাকে একটি রিপোর্ট তৈরি করতে হবে, যা JasperReports Server এ আপলোড করা যাবে। রিপোর্টটি একটি JasperReports (JRXML) বা Jasper ফাইল হিসেবে থাকতে হবে।
- জেডি-বি (Jaspersoft Studio) দিয়ে রিপোর্ট আপলোড করা:
- Jaspersoft Studio ব্যবহার করে রিপোর্ট তৈরি করুন এবং JasperReports Server-এ আপলোড করুন।
- রিপোর্ট সিডিউল করা:
- JasperReports Server এ লগইন করে আপনি রিপোর্ট সিডিউল করার জন্য একটি সময় নির্ধারণ করতে পারেন। আপনি বিভিন্ন সময়সূচী যেমন দৈনিক, সাপ্তাহিক, বা মাসিক নির্ধারণ করতে পারবেন।
- রিপোর্ট আউটপুট ফরম্যাট নির্বাচন:
- সিডিউল করা রিপোর্টের আউটপুট ফরম্যাট (PDF, Excel, HTML, CSV, ইত্যাদি) নির্বাচন করা যাবে।
- রিপোর্ট ইমেল মাধ্যমে পাঠানো:
- সিডিউল করা রিপোর্ট একটি নির্দিষ্ট ইমেইল ঠিকানায় পাঠানো যাবে, যেমন প্রতিদিনের বিক্রয়ের রিপোর্ট ম্যানেজারকে পাঠানো।
JasperReports Server এ রিপোর্ট Scheduling Example:
- Reports -> Schedules:
- JasperReports Server এর ড্যাশবোর্ডে "Schedules" ট্যাবে যান।
- New Schedule:
- "New Schedule" এ ক্লিক করুন। এখানে আপনি রিপোর্টের নাম, আউটপুট ফরম্যাট (PDF, Excel, etc.), এবং ইমেল পাঠানোর জন্য সঠিক কনফিগারেশন পাবেন।
- Frequency:
- রিপোর্টের জন্য সময়সীমা নির্বাচন করুন যেমন Daily, Weekly, Monthly বা Specific Time।
- Start Date এবং End Date:
- সিডিউল করার সময় শুরু এবং শেষ তারিখও নির্ধারণ করতে পারেন।
- Output Format:
- রিপোর্টের আউটপুট ফরম্যাট নির্বাচন করুন (যেমন PDF, Excel, HTML, etc.).
- Email Configuration:
- রিপোর্টটি যদি ইমেল হিসাবে পাঠাতে চান, তাহলে রিপোর্ট আউটপুটের ইমেইল কনফিগারেশন করুন। এতে আপনার নির্ধারিত রিপোর্টটি নির্দিষ্ট ইমেইল ঠিকানায় পাঠানো হবে।
JasperReports Server এর Scheduler এবং কনফিগারেশন
JasperReports Server আপনাকে রিপোর্ট সিডিউল করার জন্য শক্তিশালী ইন্টারফেস প্রদান করে, যা ব্যাকগ্রাউন্ডে নির্দিষ্ট সময় পর পর রিপোর্ট রান করে এবং তা ইমেইলে পাঠায়। JasperReports Server-এর Scheduler এর কনফিগারেশন কিছু গুরুত্বপূর্ণ সেটিংস এর উপর নির্ভরশীল:
- Time Zone:
- আপনি রিপোর্ট সিডিউল করার সময় Time Zone নির্ধারণ করতে পারেন যাতে এটি সঠিক স্থানীয় সময় অনুযায়ী রান করে।
- Data Source:
- রিপোর্টের ডেটার সোর্স সেট করতে হবে। এটি JDBC, JNDI, অথবা Hibernate হতে পারে।
- Output Destination:
- রিপোর্টের আউটপুট একটি নির্দিষ্ট ডিরেক্টরিতে সংরক্ষণ করতে অথবা ইমেইল মাধ্যমে পাঠানো যেতে পারে।
Jaspersoft Studio ব্যবহার করে রিপোর্ট Scheduling
Jaspersoft Studio ব্যবহার করে JasperReports ফাইল তৈরি করতে পারেন, তবে রিপোর্ট সিডিউলিং বা অটোমেটিক এক্সিকিউশন JasperReports Server এ করা যায়। Jaspersoft Studio মূলত রিপোর্ট ডিজাইন এবং তৈরি করার জন্য ব্যবহৃত হয়, তবে এটি JasperReports Server-এর সাথে সংযুক্ত হয়ে রিপোর্ট সিডিউলিং সাপোর্ট করে।
Jaspersoft Studio ব্যবহার করে JasperReports Server এর সাথে ইন্টিগ্রেশন:
- Jaspersoft Studio থেকে রিপোর্ট তৈরি করুন।
- রিপোর্টটি JasperReports Server এ আপলোড করুন।
- JasperReports Server এর মাধ্যমে রিপোর্ট সিডিউল করুন।
Java Code দিয়ে JasperReports এ Scheduling
JasperReports-এ রিপোর্ট সিডিউল করার জন্য Java কোডের মাধ্যমে সরাসরি সিডিউলিং করতে পারেন, তবে এটি সাধারণত JasperReports Server এর মাধ্যমে সহজভাবে করা যায়। Java কোডের মাধ্যমে, আপনি Quartz Scheduler বা অন্যান্য Job Scheduler ব্যবহার করতে পারেন রিপোর্ট সিডিউল করার জন্য।
Quartz Scheduler Example:
Quartz Scheduler ব্যবহার করে JasperReports রিপোর্ট সিডিউল করা যায়। নিচে একটি সাধারণ কোড উদাহরণ দেওয়া হলো যা রিপোর্ট সিডিউল করে:
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import net.sf.jasperreports.engine.*;
public class ReportScheduler {
public static void main(String[] args) throws Exception {
// Quartz Scheduler তৈরি করা
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
// রিপোর্ট সিডিউল করার জন্য ট্রিগার সেট করা
JobDetail job = JobBuilder.newJob(ReportJob.class)
.withIdentity("reportJob", "group1")
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("reportTrigger", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(60).repeatForever()) // প্রতি 60 সেকেন্ডে
.build();
scheduler.scheduleJob(job, trigger);
}
}
class ReportJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
try {
// রিপোর্ট কম্পাইল করা
String reportPath = "path/to/your/report.jasper";
JasperReport jasperReport = JasperCompileManager.compileReport(reportPath);
// রিপোর্ট ফিলিং এবং এক্সপোর্ট করা (PDF)
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap<>(), new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(jasperPrint, "scheduled_report.pdf");
} catch (JRException e) {
e.printStackTrace();
}
}
}
এখানে Quartz Scheduler ব্যবহার করে একটি রিপোর্ট সিডিউল করা হয়েছে যা প্রতি 60 সেকেন্ডে চলবে এবং scheduled_report.pdf ফাইল তৈরি করবে।
JasperReports-এ রিপোর্ট সিডিউলিং একটি গুরুত্বপূর্ণ ফিচার যা আপনাকে রিপোর্টগুলি নির্দিষ্ট সময় বা ইভেন্টে অটোমেটিক্যালি তৈরি এবং এক্সপোর্ট করতে সক্ষম করে। JasperReports Server এর মাধ্যমে এই ফিচারটি সহজভাবে ব্যবহার করা যায়, যেখানে আপনি বিভিন্ন ধরনের রিপোর্ট সিডিউল করতে পারেন এবং ইমেইল বা অন্য কোনো আউটপুট ফরম্যাটে পাঠাতে পারেন। এছাড়াও, Java কোড এবং Quartz Scheduler ব্যবহার করে সরাসরি রিপোর্ট সিডিউলিং করারও সুবিধা রয়েছে।
Read more