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:

  1. Bikinlah sebuah New Project dan berilah nama ReportingInNetBeans.
  2. 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:
    jframe_report
    Click to large
  3. 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:
    direktori_dist_report
    Click to large
  4. 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:
    build-impl-xml
    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 :D dan sekarang waktunya untuk membuat contoh report melalui iReport. :)

  5. 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:
    SettingKoneksiIreport
    Click to large
  6. 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:
    Qry_iReport
    Click to large
  7. Setelah menentukan Report Query, sekarang design-lah report-nya hingga menjadi seperti gambar dibawah ini:
    report_template
    Click to large

    kemudian 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:
    gambar_dir_prj_Nb
    Click to large

  8. 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:
    Report_Jadi
    Click to large
  9. 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 :)

  10. 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 :D )
    Report_di_PC_LAIN
    Click to large

    Ini tampilan di user javamaniac ( Anggap saja di PC Lokal )
    RptDiPCLokal
    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

  • Share/Bookmark
Print This Post

59 Responses to “Reporting dengan NetBeans”

  1. akila says:

    Mas mo tanya dong, gimana caranya memfilter report (jasperreport). misalkan saya hanya ingin menampilkan mhs yang kelas tertentu saja, dan kelasnya di input dari form.
    Thanks atas jawabanya.

  2. poil says:

    mas ady numapang tanya,kemarin q kurang bisa buat falidasi password, masakah itu udah selesai sekarang,tapi sekarang ada yang sulit bagi q mas..
    gi mana cara nya..
    kalau kita buat 1 form utama..
    trus kita nentuin admin bisa aktif semua, n user hanya aktif bagi user aja..

    balas ya mas..
    makasi..

  3. tutorial yg bermanfaat! akirnya saya bisa buat report…

  4. budi:

    mas kenapa ya kalo mau buat report di Ireport
    sering gagal and report tersebut tidak mau muncul untuk di desain. koneksi nya sudah si set tp desain report ga mau muncul. trims…

    Btw bisa jelasin ga kira2x langkah2x apa ajah yg udah dilakukan ??? Btw udah ngikutin panduan seperti tulisan saya ?? Klo udah, harusnya sih ga masalah :)

    budi 4:06:

    ireport kadang2 tidak mau menghasil file jasper
    hanya report.jarnya saja

    report.jar ? Ah yg bener mas, setahu saya iReport maupun jasper tidak mungkin menghasilkan file .jar, kecuali klo kita build dari NetBeans. Sedangkan .jar tersebut biasanya ya aplikasi kita. Btw untuk menghasilkan file .jasper, langkahnya sih ketika di design mode (di dlm iReport) mas harus compile dulu supaya dpt file *.jar-nya :)

    Andry Rachmat 13:33:

    mas bsa bantuin, gmn yah klo bwt database sederhananya sebelum bkn report???

    Bukannya di contoh tersebut sudah terdapat database sederhananya ? Atau klo mau bisa lihat posting saya tentang pembuatan Master Detail Report, itu contoh kasusnya kita bikin database sederhana dulu koq, abis gitu baru deh kita bikinin reportnya :)

  5. Andry Rachmat says:

    mas bsa bantuin, gmn yah klo bwt database sederhananya sebelum bkn report???

  6. Andry Rachmat says:

    mas gmn yah klo buat aplikasi database sederhananya sebelum bkn reportnya???

Leave a Reply

[+] adsenseid emoticons by Martinus Ady H. Modified from nartzco source code.