Jasper Report Cetak Data di JTable

jasper jtable

Pada proses cetak laporan menggunakan Jasper Report, paling sering sumber data yang digunakan adalah data yang berasal dari basisdata. Tentu saja sumber data dari basisdata bukan merupakan satu-satunya cara, masih ada sumber data yang lain yaitu dari collection. Tulisan ini saya tujukan untuk pengenalan JRBeanCollectionDataSource sebagai sumber data menggunakan collection dengan studi kasus cetak laporan dari JTable.

Tulisan ini sekaligus saya buat karena di grup yang saya ikuti ada yang bertanya bagaimana cara cetak laporan dengan data berasal dari JTable. Kalau terbiasa menggunakan JRBeanCollectionDataSource saya jamin pasti tahu bagaimana workaround-nya. Apalagi kalau terbiasa menggunakan AbstractTableModel buat model di JTable akan lebih gampang lagi.

Misal data yang ditampilkan pada JTable dan yang akan dicetak berupa data mahasiswa dengan atribut nim, nama, jenis kelamin dan alamat, maka kita buatkan kelasnya sebagai berikut

Karena data akan ditampilkan pada JTable maka perlu disiapkan juga modelnya. Saya pakai AbsctractTableModel

Tulisan mengenai penggunaan AbastractTableModel sudah pernah saya tulis sebelumnya beberapa kali, silahkan cari pada kategori Java Swing

Perhatikan pada baris ke-14 yang saya tandai. Di situ terdapat sebuah list yang digunakan untuk menampung data mahasiswa yang dimasukkan oleh pengguna untuk kemudian ditampilkan pada JTable. List ini juga nantinya akan digunakan sebagai sumber data untuk mencetak laporan. Supaya bisa diakses dari luar kelas maka list perlu dibuatkan getter-nya seperti pada baris 16-18. Selanjutnya baris 22-25 adalah method yang digunakan untuk menambahkan objek mahasiswa pada list tadi.

Desain laporan sederhana saja, tambahkan 4 buah fields sesuai dengan atribut mahasiswa, lebih jelasnya silahkan lihat gambar di bawah ini
report design

Nah berikut ini adalah kelas yang bertugas untuk mencetak laporan berdasarkan data yang ada pada JTable, perhatikan bahwa pada method show terdapat parameter berupa list mahasiswa. List ini digunakan sebagai sumber data yang dilewatkan pada constructor dari JRBeanCollectionDataSource (perhatikan baris 27).

Selanjutnya tinggal memanggil method yang sudah dibuat sebelumnya pada JFrame sebagai tampilan aplikasi. Misal saja desain tampilannya seperti ini, anggap saja bagus 😀
form design

Saat tombol simpan ditekan event-nya adalah

Pada baris ke-8, dipanggil method save milik tablemodel untuk menyimpan data mahasiswa kedalam list. Dari sini data pada list akan semakin menumpuk dengan semakin bertambahnya input yang dilakukan. Adapun event saat tombol cetak ditekan adalah

Pada baris 3 kita ambil nilai list mahasiswa menggunakan getter kemudian dijadikan parameter untuk mencetak laporan. Sudah selesai, segampang itu, tidak susah kan?

Ini adalah screenshot-nya, maaf karena sudah ngantuk jadi salah input data untuk jenis kelamin, ada yang laki-laki ada yang pria, maaf lagi karena terlalu malas seharusnya menggunakan combobox bukan text field.
data

Dan laporannya
report

Semoga bermanfaat
🙂
Happy Coding!!!

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

2 thoughts on “Jasper Report Cetak Data di JTable

  1. maaf mas , itu MahasiswaServiceImpl diambil dari package service , itu apanya ? apakah koneksi atau apa nya , saya masih newbie maaf mas 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *