Jumat, 02 September 2011

Reporting With JasperReport And iReport (Java)


JasperReport
JasperReport merupakan library di lingkungan Java untuk pemroses laporan. Dengan library ini, kita dapat menampilkan laporan dalam bentuk print preview, melakukan export ke beberapa format dokumen lain (antara lain PDF, HTML, text, Excel), menampilkan gambar, grafik maupun tabel. Berikut beberapa library lain yang digunakan juga dalam JasperReport : commons-beanutils.jar, commons-collections.jar, commons-digester.jar, commons-logging.jar, itext-1.02b.jar, jfreechart-0.9.21.jar.
 
Penjelasan mengenai fungsi-fungsi tiap library yang digunakan:
Library
Keterangan
commons-logging
untuk mengirim output ke log
commons-collections
untuk manage collection data
commons-beanutils
untuk java beans
commons-digester
untuk parsing xml
jfreechart
untuk mengatur penggunaan grafik
itext
untuk export report ke pdf atau rtf
Laporan yang kita buat nantinya dapat dikaitkan ke database berdasar connection string dan sql yang kita inginkan. JasperReport mendasarkan format dokumen definisi laporan yang akan dikompilasi berbasis pada XML, sehingga nantinya dapat dengan mudah dapat dikonversi ke format dokumen lain dengan memanfaatkan XSLT ataupun FO (Format Object).
B. Langkah-Langkah
Buat File FirstReport.jrxml
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
Keterangan :
<> menggambarkan teks statis yang tidak tergantung pada datasources
manapun , variabel, parameter.
<> menggambarkan lebar dan posisi unsur <> itu.
<> menggambarkan teks statis yang nyata yang dipertunjukkan pada laporan itu
Buat Program CallFirstReport.java
Source CallFirstReport.java
public class CallFirstReport {
public CallFirstReport() {
try {
JasperCompileManager.compileReportToFile("c:\\FirstReport.jrxml");
JasperFillManager.fillReportToFile("c:\\FirstReport.jasper",
new HashMap(), new JREmptyDataSource());
JasperViewer.viewReport("c:\\FirstReport.jrprint", false);
}catch (Exception ex) {
System.out.println("Gagal Membuat report " + ex);
}}
public static void main(String[] args) {
new CallFirstReport();
}
}
File FirstReport.jrxml merupakan contoh desain template sederhana untuk membuat suatu report dengan menampilkan hasil ini file jasperku yang pertama, belum jika nanti ada banyak desain – desain dan data-data yang lain. Bayangkan saja, kita harus mengetahui dan hafal tag-tag dalam JasperReport dan harus pintar-pintar mengatur bentuknya. Betapa reportnya kita nanti dalam menyusun suatu desain. Tapi kita tidak perlu cemas, karena sekarang ada tools untuk memudahkan kita untuk membuat desain jasper dengan lebih mudah dan efisien. Tools itu bernama iReport, versi terbaru waktu menulis modul ini, iReport versi 2.0.4.
iReport
iReport 2.0.4 adalah merupakan perangkat lunak bantu untuk perancangan laporan secara visual yang nantinya dapat di kompilasi dengan menggunakan JasperReport sehingga menjadi file *.jasper atau *.jrxml yang dapat langsung dipanggil oleh program Java.
Komponen-komponen iReport :
1. Koneksi Database / Datasource
Sebelum kita memulai mendesain sebuah report dalam iReport, terlebih dahulu langkah yang kita harus lakukan adalah kita harus melakukan koneksi ke database. Dalam hal ini kita akan membuat koneksi database dengan menggunakan JDBC Connection.
Langkah-langkahnya adalah:
  1. Pilih Data -> Connection/Datasource, Klik new, akan muncul wizard.
  2. Pilih “Database JDBC Connection”. Kemudian akan muncul form Connections properties.
  3. Kemudian Name diisi dengan nama Koneksi
  4. JDBC Driver diisi dengan kelas driver yang akan digunakan. Misal kita akan menggunakan Database MySQL, sehingga driver classnya diisi dengan “com.mysql.jdbc.Driver”.
  5. JDBC URL diisi dengan url dari database yang akan digunakan. Misal kita akan menggunakan Database MySQL dengan dijalankan di localhost dan nama databasenya rudy, maka penulisan urlnya menjadi “jdbc:mysql://localhost/rudy”.
  6. User Name dan Password diisi dengan username dan password untuk login ke dalam database yang digunakan.
  7. Kemudian klik save untuk menyimpan koneksi atau klik test untuk mengecek apakah konfigurasi telah sesuai.
2. Query Database
Langkah selanjutnya setelah kita berhasil membuat koneksi ke database di iReport, selanjutnya kita perlu membuat query yang digunakan untuk menampilkan data yang ingin kita tampilkan.
  1. Pilih Data -> Report Query
  2. Kemudian isikan Query database pada text area yang berada di tengah form.
  3. Setelah Query diisikan kemudian akan muncul field-field dari hasil query tersebut. Field-field tersebut berada dalam tabel yang berada di bagian bawah form.
Sekarang kita telah mendapatkan field-field dari database, yang nantinya akan digunakan untuk keperluan desain report.
Gambar Tampilan Report Query
Dalam iReport ada 3 komponen utama yang digunakan untuk menampung data yaitu Field, Variable dan Parameter. Komponen-komponen tersebut dapat dilihat pada bagian Document Structure.
Gambar Tampilan Document Structure
3. Field
Field digunakan untuk menampung data hasil dari query database. Seperti contoh diatas ada 3 buah field yaitu ID, NAMA_ASISTEN dan STATUS.
4. Variables
Variables digunakan untuk menampung data yang akan digunakan di dalam report. pada iRepot telah tersedia beberapa variables build in antara lain PAGE_NUMBER, COLUMN_NUMBER, REPORT_COUNT, PAGE_COUNT, COLUMN_COUNT. kita juga bisa mendefinisikan variables custom dengan cara klik kanan node variables pada document structure pilih add -> variables.
5. Parameters
Parameters digunakan untuk masukan atau melewatkan data dari kode Java ke dalam report. iReport juga telah menyediakan beberapa parameters build in dan kita juga bisa menambahkan parameters sesuai dengan yang kita butuhkan. dengan cara klik kanan node parameters pada document structure pilih add -> parameters.
6. Design
Setelah kita melewati beberapa langkah diatas, kita telah siap untuk mendesain report. untuk mendesainnya kita cukup melakukan Drag and Drop saja, komponen-komponen yang kita butuhkan ke dalam bidang desain.
Gambar Tampilan Bidang Desain
Pada bidang desain terbagi menjadi 9 bidang desain yaitu title, pageHeader, columnHeader, detail, columnFooter, pageFooter, lastPageFooter, summary dan Background. Ke sembilan bidang desain itu, kita dapat mengatur ukurannya sesuai dengan kehendak kita dan bahkan juga dapat kita hilangkan. Untuk mengaturnya klik kanan bidang desain kemudian pilih band properties.
Penjelasan mengenai 9 bidang desain dibawah ini:
1. Background
Background disini dapat diisi dengan gambar maupun text, yang nantinya akan menjadi background pada setiap halaman dalam report.
2. title
title akan dicetak sekali pada bagian paling atas report. title ini dapat diisi dengan judul report atau kop report.
3. pageHeader
pageHeader akan dicetak pada bagian atas di setiap report.
4. columnHeader
columnHeader akan dicetak pada bagian atas tabel / kolom pada report. biasanya digunakan untuk nama kolom.
5. detail
detail adalah isi dari report itu sendiri. Biasanya komponen yang berada pada detail ini adalah field yang nantinya akan dicetak sebanyak data dari hasil query database.
6. columnFooter
penjelasannya sama dengan columnHeader, hanya saja dicetak di bagian bawah.
7. pageFooter
penjelasannya sama dengan pageHeader, hanya saja dicetak pada bagian bawah.
8. lastPageFooter
lastPageFooter akan dicetak sekali pada bagian bawah halaman report paling belakang
9. summary
summary akan dicetak pada halaman paling belakang dari report. biasanya diisi dengan grafik atau keterangan umum dari report.
Buat Program Java ShowReport.java
import java.sql.*;
import java.util.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;
public class ShowReport {
public static Connection connectDB (String databaseName,
String userName, String password) {
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection
("jdbc:mysql://localhost/rudy", "root", "rudy");
} catch (Exception ex) {
System.out.println(“Tidak dapat terhubung” + ex);
}
return connection;
}
public void viewReport() {
try {
Map map = new HashMap();
map.put("v_asisten", "Java");
JasperDesign jasperDesign = JRXmlLoader.load
("c:\\classic.jrxml");
JasperReport jasperReport = JasperCompileManager.
compileReport(jasperDesign);
Connection connection = connectDB
("jdbc:mysql://localhost/rudy", "root", "rudy");
JasperPrint jasperPrint = JasperFillManager.
fillReport(jasperReport, map, connection);
JasperViewer.viewReport(jasperPrint);
} catch (Exception ex) {
System.out.println("Gagal Membuat report " + ex);
}
}
public static void main(String[] args) {
ShowReport report = new ShowReport();
report.viewReport();
}
}

0 komentar:

Posting Komentar

Template by:

Free Blog Templates