Laporan menjadi mudah dengan JasperReports

Membuat laporan adalah tugas umum, jika tidak selalu menarik, bagi programmer. Di masa lalu, pembuatan laporan sebagian besar telah menjadi domain produk komersial besar seperti Crystal Reports. Saat ini, pustaka pembuat laporan JasperReports open source memberi pengembang Java alternatif yang layak untuk perangkat lunak komersial.

JasperReports menyediakan fitur yang diperlukan untuk menghasilkan laporan dinamis, termasuk pengambilan data menggunakan JDBC (Java Database Connectivity), serta dukungan untuk parameter, ekspresi, variabel, dan grup. JasperReports juga menyertakan fitur-fitur lanjutan, seperti sumber data khusus, scriptlet, dan sublaporan. Secara keseluruhan, JasperReports menggabungkan fitur-fitur bagus, kedewasaan, partisipasi komunitas, dan, yang terbaik, gratis.

Artikel ini memulai kolom Profil Sumber Terbuka baru JavaWorld yang didedikasikan untuk alat dan komponen sumber terbuka berbasis Java. Cari artikel mendatang yang menyoroti kerangka aplikasi Web Echo dan ObJectRelationalBridge, alat pemetaan objek / relasional. Jangan ragu untuk mengirimi saya saran Anda untuk artikel mendatang.

Catatan: Dokumentasi dan kode yang ditampilkan dalam artikel ini didasarkan pada JasperReports versi 0.3.3.

Desain laporan

Di JasperReports, Anda mendesain laporan menggunakan template laporan XML. Misalnya, file XML berikut ini adalah templat untuk laporan dengan judul, dua kolom data, dan nomor halaman:

           $ P {Judul}                                                             

Awal template menyertakan semua parameter yang diteruskan ke dalam laporan, kueri yang mengambil data untuk laporan, dan bidang yang ditampilkan dalam laporan. Sisa template dibagi menjadi enam bagian laporan:

  • title
  • pageHeader
  • columnHeader
  • detail
  • columnFooter
  • pageFooter
  • summary

Setiap bagian laporan, yang disebut pita , diberi a height. Setiap pita dapat menyertakan banyak staticTextdan textFieldelemen, yang diberi posisi, ukuran, dan nilai. Laporan parameter, bidang, dan variabel yang direferensikan menggunakan P${name}, F${name}dan V${name}masing-masing.

Misalnya, baris berikut di bagian footer halaman membuat textFieldberisi nomor halaman saat ini. Nilai nomor halaman disetel ke variabel PAGE_NUMBER, ditentukan secara internal oleh JasperReports dan tersedia untuk semua laporan:


  

Template di atas mewakili laporan dasar, namun fungsional. Deskripsi template XML JasperReports yang menyeluruh berada di luar cakupan artikel ini, tetapi saya telah menyertakan banyak tautan di Sumber Daya ke alat yang akan membantu Anda mengedit dan membuat templat laporan Anda sendiri. Selanjutnya, mari kita lihat cara menggunakan JasperReports di aplikasi Java Anda.

Gunakan JasperReports

Untuk mulai menggunakan JasperReports, Anda harus terlebih dahulu memahami objek apa yang digunakan JasperReports untuk mewakili proses pelaporan saat berlangsung dari desain laporan hingga pembuatan laporan:

  • JasperDesign:Merupakan definisi laporan. Dalam kebanyakan kasus, Anda membuat JasperDesigndari templat laporan XML, meskipun Anda juga bisa membuatnya secara terprogram.
  • JasperReport:Merupakan file yang dikompilasi JasperDesign. Proses kompilasi memverifikasi desain laporan dan mengompilasi desain menjadi JasperReportobjek.
  • JasperPrint:Merupakan laporan yang dihasilkan. Anda membuat JasperPrintdari a JasperReportmelalui proses pengisian di mana laporan diisi dengan data dari sumber data.

Fleksibilitas JasperReports API memungkinkan Anda memuat JasperDesign, JasperReportdan JasperPrintobjek dari file atau aliran, dan juga memungkinkan Anda membuat objek ini secara terprogram. Anda dapat mencetak laporan ke printer, gambar, atau file PDF. Pustaka JasperReports menyertakan kelas fasad dori.jasper.engine.JasperManager, dengan metode yang memfasilitasi pemuatan, kompilasi, pengisian, dan pencetakan laporan. Kode berikut menggambarkan a JasperManager:

// Pertama, muat JasperDesign dari XML dan kompilasi ke JasperReport JasperDesign jasperDesign = JasperManager.loadXmlDesign ("BasicReport.xml"); JasperReport jasperReport = JasperManager.compileReport (jasperDesign); // Kedua, buat peta parameter untuk diteruskan ke laporan. Parameter peta = HashMap baru (); parameter.put ("ReportTitle", "Basic JasperReport"); parameter.put ("MaxSalary", Double baru (25000.00)); // Ketiga, dapatkan koneksi database Connection conn = Database.getConnection (); // Keempat, buat JasperPrint menggunakan metode fillReport () JasperPrint jasperPrint = JasperManager.fillReport (jasperReport, parameter, conn); // Anda dapat menggunakan JasperPrint untuk membuat PDF JasperManager.printReportToPdfFile (jasperPrint, "BasicReport.pdf"); // Atau untuk melihat laporan di JasperViewer JasperViewer.viewReport (jasperPrint);

Contoh kode di atas menunjukkan cara melakukan beberapa tugas umum menggunakan JasperReports. Dalam aplikasi dunia nyata, Anda akan merasa tidak praktis untuk memuat dan mengompilasi JasperDesignsetiap kali Anda ingin membuat laporan. Karena desain laporan sebagian besar bersifat statis, dalam banyak kasus, Anda harus mengkompilasi JasperDesignfile Anda terlebih dahulu untuk meningkatkan kecepatan. Anda juga dapat meningkatkan kecepatan laporan besar dengan membuat dan menyimpan JasperPrintobjek sebagai bagian dari proses batch setiap malam.

Hanya itu yang Anda butuhkan untuk memulai; unduh JasperReports dan Anda akan siap dan bekerja dalam waktu singkat.

Melaporkan dengan cara mudah

Di artikel ini, Anda telah mempelajari bagaimana JasperReports open source dapat membantu kebutuhan pelaporan Java Anda. Jika Anda sedang membuat aplikasi pelaporan atau ingin menambahkan kemampuan pelaporan ke aplikasi yang sudah ada, lihat JasperReports. Kunjungi beranda JasperReports untuk informasi lebih lanjut dan unduh versi terbaru.

Erik Swenson adalah konsultan dan pendiri Solusi Perangkat Lunak Sumber Terbuka. Swenson mengkhususkan diri dalam pengembangan Java menggunakan perangkat lunak dan komponen sumber terbuka. Dia mengembangkan proyek sumber terbuka JasperEdit dan OpenReports.

Pelajari lebih lanjut tentang topik ini

  • Temukan beranda JasperReports di

    //jasperreports.sourceforge.net

  • Alat sumber terbuka untuk JasperReports meliputi:
  • JasperEdit // sourceforge.net / projects / jasperedit
  • Laporkan alat desain untuk Eclipse // sourceforge.net / projects / jeez
  • Desainer untuk Jasper // sourceforge.net / projects / jasperdesign
  • Alternatif open source untuk JasperReports meliputi:
  • JFreeReport // sourceforge.net / projects / jfreereport
  • DataVision // sourceforge.net / projects / datavision
  • Jelajahi bagian Alat Pengembangan Java dari Indeks Topikal JavaWorld

    //www.javaworld.com/channel_content/jw-tools-index.shtml

  • Mengobrol tentang pengembangan Java di JavaWorld' s Teori Programming & Praktek diskusi

    //forums.idg.net/[email protected]@.ee6b806

  • Mendaftarlah untuk mendapatkan buletin email mingguan JavaWorld Terapan gratis

    //www.idg.net/jw-subscribe

  • Anda akan menemukan banyak artikel terkait TI dari publikasi saudara kita di .net

Artikel ini, "Laporan menjadi mudah dengan JasperReports", awalnya diterbitkan oleh JavaWorld.