Membuat laporan dengan iReport (Netbeans Java Application)



Halo gaes...
Sebelumnya ane udah sangat berterima kasih atas kunjungan kalian, berhubung ada tugas sekolah ane mau berbagi tentang pembuatan laporan pada Netbeans Java Application. Jujur sih, udah puyeng ngubek2 guugle jarang ada yang praktis dan detail bagi nubie malang seperti ane. Oya, yang ane gunakan di tutorial ini, OS Linux Mint, dan Netbeans IDE 8.2, kalian gak harus menggunakan yang ane sebut tadi tapi hanya sekedar informasi yang ane gunakan untuk pembuatan aplikasi laporan ini. Biar gak kebanyakan huruf di postingan, ane lanjut ke step pertama.

Step 1 : Plugin dan Libraries
Untuk Plugin, jika kalian sudah ada sebelumnya, gak usah di download lagi, lanjutkan ke Libraries. Dan link download berisi link Skip Ad, link tersebut ane sengaja sediakan untuk kalian berdonasi hehe (Gak usah khawatir, ane gak minta uang hehe).

Plugin yang di gunakan.

Libraries yang di gunakan.

mysql-connector-java-8.0.11.jar Link
commons-collections-3.2.1-1.0.0.jar Link
commons-digester-2.1.jar Link
commons-logging-1.2.jar Link
groovy-2.4.15.jar Link
jasperreports-6.6.0.jar Link
org.apache.commons.beanutils.jar Link
Step 2 : Menyiapkan Package, Class, dan Form

Buat project baru dengan tipe Java -> Java Application -> Next.
Untuk penamaan terserah kalian, sebagai contoh dengan nama MyReport lalu hilangkan centang Create main class dan Finish.

Pilih Source Packages klik kanan New -> Java Package
Penamaan terserah kalian, sebagai contoh dengan nama MyPackage dan Finish
Untuk membuat Class klik kanan pada MyPackage lalu New -> Java Class, seperti biasa kalian bebas menamakan suatu penamaan, sebagai contoh dengan nama isModels dan Finish.

Selanjutnya tambahkan Form pada MyPackage, sama dengan langkah membuat Class diatas, New -> jFrame Form sebagai contoh dengan nama myForm dan Finish.

Step 3 : Pemasangan Plugin dan Libraries

Lihat menu bar diatas pada gambar dibawah dan pilih Tools -> Plugins.



Pilih tab Downloaded klik Add Plugins...


Pilih 4 file yang berada di dalam file iReport-5.5.0-plugin.zip (diextract) -> Klik Ok.


Centang semua dan klik Install.


Ketika form dialog install muncul, kalian ikuti saja instruksinya hingga meminta Restart IDE.


Sebelum itu, file Libraries (*.jar) yang tadi di download, buat folder bernama lib di dalam project.
Sebagai contoh lihat gambar



Ketika kalian sudah menambahkan folder dan file.jar, selanjutnya lihat menu bar diatas pada gambar dibawah.



Klik <default config> dan pilih Customize....
Perhatikan gambar di bawah.



Klik di bagian Categories: pilih Libraries -> Add JAR/Folder. Seleksi semua file *.jar.


Klik Ok.



Klik Ok dan siap di import.


Step 4 : Wizard Report

Klik kanan pada MyPackage klik New -> Other Pilih Categories: Report -> File Types: Report Wizard -> Next,


  • Layout pilih yang kalian suka -> Next
  • File Name: report1.jrxml -> Next
  • Klik New pada tahap Fields
  • Select the datasource type: Database JDBC Connection
  • Setelah muncul form dialog seperti gambar dibawah, tentukan database kalian (klo udah diklik Test dan berhasil lanjutkan klik Save )
  • Lalu masukkan query untuk menseleksi data. Sebagai contoh SELECT * FROM table_user -> next
  • Pindahkan dan seleksi fields ke kanan lalu Next
  • Muncul form Group By:, untuk saat ini ane skip lalu klik finish
  • Maka report1.jrxml telah terbuat. Setelah itu kreasikan sesuai keinginan kalian.
Step 5 : Coding

Sekarang kita beralih ke Class: (isModels.java) Sisipkan potongan Code dibawah ini di dalam class setelah package MyPackage;
pada class myPackage -> isModule. Agar *.jar (dkk) bisa terdaftar didalam Class.


Importing

        /**
         *
         * @author https://www.iacc.web.id/user/indoartcode
         */
        
        package MyPackage;
        
        import java.awt.Dimension;
        import java.awt.HeadlessException;
        import java.awt.Toolkit;
        import java.sql.*;
        import javax.swing.JDialog;
        
        import net.sf.jasperreports.engine.JRException;
        import net.sf.jasperreports.engine.JRResultSetDataSource;
        import net.sf.jasperreports.engine.JasperCompileManager;
        import net.sf.jasperreports.engine.JasperFillManager;
        import net.sf.jasperreports.engine.JasperPrint;
        import net.sf.jasperreports.engine.JasperReport;
        import net.sf.jasperreports.swing.JRViewer;
        
        
Connection

            public class isModels {
                Connection conn;
                Statement st;
                ResultSet rs;
                
                public isModels() {
                    String isDatabase = "MyDatabase_iacc";
                    String isDatabaseUser = "root";
                    String isDatabasePassword = "database_user";
                    String strConn = "jdbc:mysql://localhost/"+ isDatabase +"?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false";
                    try {
                        conn = DriverManager.getConnection(strConn, isDatabaseUser,isDatabasePassword);
                        st = conn.createStatement();
                    } catch (SQLException ex) {
                        System.err.println("Error : " + ex);
                    }
                }
                
            }
        
Reporting

            //Reporting
            /**
             *
             * @param strTitleForm 'Judul Form'
             * @param strQuery 'Dengan contoh : "Select * From nama_table"'
             * @param strReportFileLocation 'Tentukan lokasi file laporan anda dengan format *.jrxml dengan contoh (./src/report1.jrxml)'
             */
            public void viewReportShowForm(String strTitleForm, String strQuery, String strReportFileLocation) {
                try {
                    rs = st.executeQuery(strQuery);
                    JasperPrint jasperPrint;       
                    JRResultSetDataSource jrRS = new JRResultSetDataSource (rs);        
                    JasperReport jasperReport = JasperCompileManager.compileReport(strReportFileLocation);          
                    jasperPrint = JasperFillManager.fillReport(jasperReport, null, jrRS);
                    JRViewer aViewer = new JRViewer(jasperPrint);                  
                    JDialog viewer = new JDialog();
                    viewer.setTitle(strTitleForm);
                    viewer.setAlwaysOnTop(true);
                    viewer.getContentPane().add(aViewer);                  
                    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();     
                    viewer.setBounds(0,0,screenSize.width, screenSize.height);
                    viewer.setVisible(true);   
                    
                } catch (HeadlessException | SecurityException | SQLException | JRException e) {}
            }
            //End Reporting
        

Setelah siap dengan Importing, Connection, dan Reporting pada Class isModels. Sekarang saatnya menempatkan Usage ke form yang tadi kita sudah buat.

Usage

            package MyPackage;
            
            public class myForm extends javax.swing.JFrame {
        
                isModels myModels = new isModels();
                
                public myForm() {
                    initComponents();
                }
                
                private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
                    try {
                        myModels.viewReportShowForm(
                                "Laporan Test",
                                "SELECT * FROM tabel_user", 
                                "./src/MyPackage/report1.jrxml");
                    } catch (Exception ex) {
                        System.err.println("Error : " + ex);
                    }
                }
            }
        
Pass : iacc.web.id Download Source Code