Reporting dengan NetBeans
Kemaren dulu ada pertanyaan di milis netbeans-indonesia@yahoogroups tentang masalah Report di Netbeans. Inti kasusnya adalah seperti berikut:
Aplikasi beserta report-nya jalan dengan sukses pada komputer si programmer, tapi ketika si programmer memindahkan aplikasi-nya ke komputer lain reportnya tidak mau jalan atau tidak mau tampil.
OK sekarang mari kita coba membuat sebuah latihan tentang reporting menggunakan iReport dan NetBeans IDE dan peralatan-peralatan yang perlu dipersiapkan adalah sebagai berikut :
- NetBeans 5.5
- iReport 1.3.1
- MySQL Server (atau bisa juga database server yang lain)
- JDK 1.6
Setelah peralatan telah siap, mari kita buat latihannya dan langkah-langkahnya adalah sebagai berikut:
- Bikinlah sebuah New Project dan berilah nama ReportingInNetBeans.
- Pada project inspector, klik kanan root project kemudian pilih New > JFrame Form kemudian pada jendela New JFrame isikan Frame Report pada Class Name, dan pada kolom isian Package pilihlah reportinginnetbeans. Setelah itu tambahkanlah beberapa komponen pada JFrame tersebut sehingga tampilannya menjadi seperti gambar dibawah ini:

Click to large - Setelah mengatur tampilan JFrame seperti pada gambar diatas, sekarang tekanlah tombol SHIFT+F11 agar NetBeans membuatkan sebuah direktori distribusi untuk kita yaitu direktori dist. Setelah itu, masuklah pada files inspector kemudian buatlah sebuah direktori yaitu direktori Report dibawah direktori dist yang berfungsi untuk menampung seluruh file template yang kita desain pada iReport dan tampilan dari langkah ke 3 ini terlihat seperti gambar dibawah ini:

Click to large - Setelah membuat sebuah direktori Report sekarang waktunya untuk mengkonfigurasi file build-impl.xml agar ketika kita melakukan proses Clean direktori Report ini tidak ikut terhapus. Sekarang bukalah file build-impl.xml yang terdapat pada direktori nbproject seperti gambar dibawah ini:

Click to large
Setelah file build-impl.xml terbuka, sekarang carilah CLEANUP SECTION seperti dibawah ini:526 527 528 529 530 531 532 533 534 535 536 537 538 539 540
<!-- =============== CLEANUP SECTION =============== --> <target name="deps-clean" depends="init" unless="no.deps"/> <target name="-do-clean" depends="init"> <delete dir="${build.dir}"/> <delete dir="${dist.dir}"/> </target> <target name="-post-clean"> <!-- Empty placeholder for easier customization. --> <!-- You can override this target in the ../build.xml file. --> </target> <target name="clean" depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products."/>
Setelah itu editlah baris 534 sehingga hasilnya menjadi seperti dibawah ini:
526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541
<!-- =============== CLEANUP SECTION =============== --> <target name="deps-clean" depends="init" unless="no.deps"/> <target name="-do-clean" depends="init"> <delete dir="${build.dir}"/> <delete file="${dist.jar}"/> <delete dir="${dist.javadoc.dir}"/> </target> <target name="-post-clean"> <!-- Empty placeholder for easier customization. --> <!-- You can override this target in the ../build.xml file. --> </target> <target name="clean" depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products."/>
Setelah melakukan proses pengeditan seperti diatas simpanlah file konfigurasinya dan tutuplah NetBeans-nya agar mengurangi resource CPU
dan sekarang waktunya untuk membuat contoh report melalui iReport.
- Sebelum mulai menggunakan iReport, aturlah dahulu Data Source yang akan digunakan dengan cara pilih Data > Connections/Data Source dan aturlah koneksinya menjadi seperti gambar dibawah ini:

Click to large - Setelah selesai mengkonfigurasi Data Source, sekarang buatlah report baru dengan cara menekan File > New Document. Setelah template report muncul, sekarang tentukanlah Report Query yang akan digunakan untuk report ini. Untuk menentukan Report Query yang akan digunakan tekanlah Data > Report Query dan masukkanlah statement SQL sehingga tampilannya menjadi seperti dibawah ini:

Click to large - Setelah menentukan Report Query, sekarang design-lah report-nya hingga menjadi seperti gambar dibawah ini:

Click to largekemudian simpanlah dengan nama Mahasiswa_Report.jrxml pada direktori Report yang telah dibuat pada langkah ke 3 hingga struktur direktori project NetBeans kita menjadi seperti gambar dibawah ini:

Click to large - Setelah melakukan proses penyimpanan, sekarang coba jalankan report-nya dengan menggunakan active connection dengan cara tekan menu Build > Execute (with active connection) dan jika tidak ada masalah maka report yang telah anda design akan tampak seperti gambar dibawah ini:

Click to large - Report telah jadi, sekarang coba bukalah project ReportingInNetBeans kemudian pada tombol yang berfungsi untuk menampilkan reportnya berikanlah evet dengan cara klik kanan kemudian pilih Events > Action > actionPerformed kemudian pastekanlah kode dibawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
// TODO add your handling code here: jButton1.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Connection con = null; try { String jdbcDriver = "com.mysql.jdbc.Driver"; Class.forName(jdbcDriver); String url = "jdbc:mysql://localhost/latihanibatis"; String user = "root"; String pass = "rahasia"; con = DriverManager.getConnection(url, user, pass); Statement stm = con.createStatement(); try { Map<string, Object> prs = new HashMap<string, Object>(); JasperReport JRpt = JasperCompileManager.compileReport("./dist/Report/Mahasiswa_Report.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, con); JasperViewer.viewReport(JPrint, false); } catch (Exception rptexcpt) { System.out.println("Report Can't view because : " + rptexcpt); } } catch (Exception e) { System.out.println(e); } jButton1.setCursor(Cursor.getDefaultCursor());
Setelah itu, coba tekanlah tombol F6 untuk menjalankan projectnya dan jika tidak ada masalah maka report yang telah anda design di iReport akan tampil jika tombol yang berfungsi menampilkan reportnya ditekan
- Report sudah jalan dengan sangat sempurna di NetBeans, sekarang bagaimana jika kita ingin mencoba aplikasi ini pada komputer lain yang hanya mempunyai JRE saja ? Untuk menjawab pertanyaan ini, sekarang tekanlah tombol SHIFT+F11 agar netbeans membuatkan file *.jar untuk aplikasi kita. Setelah proses CLEAN and BUILD selesai, sekarang cobalah kopikan direktori dist/ ke komputer yang lain dan coba jalankan. Berhubung saya dirumah tidak mempunyai 2 komputer, maka saya kopikan ke user yang lain dan hasilnya seperti berikut :
Ini tampilan di user anton ( Anggap saja di PC Lain
)

Click to largeIni tampilan di user javamaniac ( Anggap saja di PC Lokal )

Click to large
Silahkan dicoba dikomputer lain kalau tidak percaya, reportnya pasti akan jalan dengan sempurna seperti pada waktu kita jalankan dari NetBeans IDE
Resource :
- Sample Project ReportingInNetBeans.zip
- Mahasiswa.sql


om, ko aplikasi yg sy buat ada report nya masih gak bisa sperti yg diatas.
Dari file jar, program report nya gak mau tampil, error nya ” ./dist/report/xxxxx.jrxml” System can not find the path specified.
Padahal klo dirunning sperti dari Netbeans lancar-lancar aja ko.
Tolong ya om, gimana lagi caranya spy file .jasper/.jrxml bisa running dari .jar
Thanks…
nice tutorial….
Btw bukannya tinggal kirim saja result dari ibatis (yg berupa List) ke iReport-nya ? tapi datasource di ireport-nya diganti dulu jangan pakai JDBC. Nanti klo ada kesempatan saya coba tuliskan langkah-langkah-nya, klo misalkan ndak sabar, mungkin bisa coba oprek2x sendiri + baca2x tutorial jasper dan iReport.
Maksudnya mau ditampilin di text field gmn ? Maap agak kurang nangkep ama maksudnya :”>, tapi klo saya sih pakai template project dari netbeans yg Database Application itu. Dah jadi 1 dari Swing App Framework-nya + databinding-nya sekalian
pak cara nyambung ibatis dengan ireport piye
om, saya baru belajaran java nih.. dan dapet tugas suruh bikin aplikasi sederhana. sebagian besar sudah berhasil sih… cuman kesulitan dalam mbuat searching database… biar hsil bisa ditampilkan pada jtextfield… gmn caranya om? hasilnya bukan dalam bentuk tabel. sebelum dan sesudahnya saya ucapkan terima kasih.