জ্যাস্পার রিপোর্ট এর ওপর অনেক টিউটোরিয়াল আছে নেটে, আসলে এত বেশী পরিমানে আছে যে কোনটা দিয়ে আমি কাজ করেছিলাম তা নিজেই ভুলে যাব,
তাই ভুলে যাবার আগে পুরা প্রসেসটা আবার ভিডিও করে নিচ্ছি( অডিও নেই )। (বিঃ দ্রঃ ভিডিও অনেক বড় তাই আপ্লোড হচ্ছে না। )
প্রথমে যেগুলো ডাউনলোড করা লাগবে-
১) জেস্পাররিপোর্ট এ-পি-আই
সোর্স ফোর্জ এর লিঙ্ক, ভেঙ্গে গেলে jasperreport দিয়ে সার্চ দিলেই হবে
২) রিপোর্ট ডিজাইনার
সোর্স ফোর্জ এর লিঙ্ক, ভেঙ্গে গেলে iReport দিয়ে সার্চ দিলেই হবে
৩) মাই এস কিউ এল+অ্যাপাচি (ওয়াম্প/জাম্প হলেও চলবে)
আমি এখনো জ্যাস্পার রিপোর্ট ডাটাবেসছারা কাজ করাতে পারি নাই। ডাটা বেস এর ব্যাবহার ছারা করা গেলে আপডেট জানাবো।
৪) মাই এস কিউ এল জাভা কানেক্টর
mysql-connector-java-5.1.15-bin.jar
এখানে পাওয়া যাবে-
http://www.mysql.com/downloads/connector/j/
৫) জাভা আই ডি ই এক্লিপ্স, আমি eclipse indigo for JEE ব্যাবহার করছি।
এবার কাজ শুরু
১) একটা নতুন জাভা প্রজেক্ট তৈরী করি এবং এতে এক্সটার্নাল জার ফাইল গুলো ইনক্লুড করি,
Project properties -> java build path -> libraries -> add external JAR
এখানে অ্যাড করতে হবে
mysql-connector-java-5.1.15-bin.jar
jasperreports-4.1.2\dist\jasperreports-4.1.2.jar
jasperreports-4.1.2\lib\* ( এই ফল্ডার এর সব জার)
২) একটি ছোট ডেটাবেস তৈরী করি jasper নামে, ইউজার নেম + পাসওয়ার্ড jasper
CREATE TABLE IF NOT EXISTS `test` (
`ID` int(11) NOT NULL,
`NAME` varchar(10) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
—
— Dumping data for table `test`
—
INSERT INTO `test` (`ID`, `NAME`) VALUES
(1, ‘SHABAB’),
(2, ‘ANAS’),
(3, ‘SHAKIL’);
৩) ডাটা হলো এবার রিপোর্ট, আমাদের ডাউনলোড করা iReport ইন্সটল করে তা দিয়ে রিপোর্ট বানাই, রিপোর্ট ডিজাইন এ খুব ডিটেইল গেলাম না, iReport4 ব্যাবহার করলে খুব সহজেই রিপোর্ট করা যায় wizard দিয়ে।
এই স্টেপ ৩ টি পার করতে সাহাজ্য করবে wizard। এর পর
n প্রথম স্টেপ (ইন শর্ট)
n দ্দিতীয় স্টেপ,
Create new report -> blank A4 -> launch report wizard
রিপোর্ট এর নাম দিয়ে নেক্সট দিন
Query ফিল্ড এ
SELECT * FROM TEST
দিয়ে নেক্সট
সব গুলো ফিল্ড >> ডানে এনে নেক্সট নেক্সট ফিনিশ
Palette থেকে static text আর text field এনে এরুপ একটি রিপোর্ট তৈরী করি
এবার একটি প্যারামিটার আনবো যা আমাদের জাভা প্রগ্রাম থেকে আসবে
Parameters -> add parameter
নতুন parameter এর নাম দেই ID_PARAM
Project->edit query
থেকে আমাদের query condition এ প্যারামিটার যোগ করি
সব শেষে preview দেখে .jasper file তৈরী করি। সব ঠিক ঠাক চল্লে preview করলে একটি পপ আপ এসে ID_PARAM এর ভ্যালু চাইবে, এখানে 1 ইনপুট দিলে
Database থেকে ১ id এর ইনফো দেখাবে।
Preview সফল হলে একটি .jasper file একই ডিরেক্টরি তে তৈরী হবে এটাকে আমরা আমাদের জাভা প্রগ্রাম ফোল্ডার এ কপি করি। ধরা যাক ফাইলটার নাম “frmdatabase.jasper”
৪) এবার কোডিং, এখানে সবচেয়ে ছোট একটা এক্সাম্পল দেয়া হল, এটা একটা প্যারামিটার জ্যাস্পার কে পাঠায় যার উপর সে query করে কিছু রিপোর্ট করে
package jspertest;
import javax.swing.*;
import java.awt.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.*;
public class MyReportViewer extends JFrame
{
public MyReportViewer(String fileName,Map parameter)
{
super(“View Report”);
try
{
Connection con = null;
try {
// Load the Oracle JDBC driver
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
System.out.println(“MYSQL JDBC driver loaded ok.”);
} catch (Exception e) {
System.out.println(“Driver not found\n”);
System.err.println(“Exception: “+e.getMessage());
}
String username = “jasper”;
String password = “jasper”;
String dbname=”jasper”;
con = (Connection) DriverManager.getConnection(
“jdbc:mysql://localhost:3306/”+dbname,username,password);
JasperPrint print = JasperFillManager.fillReport(fileName, parameter,con);
JRViewer viewer=new JRViewer(print);
Container c=getContentPane();
c.add(viewer);
}
catch(Exception e)
{
e.printStackTrace();
}
setBounds(10,10,600,500);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
public static void main(String args[])
{
Map param=new HashMap();
param.put(“ID_PARAM”,”2″);
MyReportViewer viewer=new MyReportViewer(“frmdatabase.jasper”,param);
viewer.setVisible(true);
}
}
এই প্রগ্রাম পাওয়া যাবে সোশাল অয়েব এ-
http://sw.daffodilvarsity.edu.bd/pg/file/shababhsiddique/read/72492/jasper-program
.jasper file টাও এর মধ্যে আছে