Pada tutorial ini saya akan menunjukkan cara mengintegrasikan Jasper report dengan aplikasi Spring Mvc untuk mencetak data pada basisdata kedalam bentuk Pdf. Spring menyediakan built-in support untuk integrasi dengan Jasper, kita akan memanfatkannya untuk merender laporan dalam format yang tadi saya sebutkan. Sedangkan untuk mendesain laporan digunakan iReport.
Saya sarankan untuk mempelajarinya terlebih dahulu.
Menambahkan Library
Tambahkan library berikut pada file [rad-hl]pom.xml[/rad-hl]
1 2 3 4 5 6 7 8 9 10 |
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>5.1.0</version> </dependency> |
Mendesain Laporan
Sebelum mulai coding untuk mencetak laporan, kita desain terlebih dahulu bentuk laporan pdf yang akan kita hasilkan nanti. Sebisa mungkin desainnya yang enak dilihat.
Untuk mendesain laporan menggunakan [rad-hl]iReport[/rad-hl] berikut adalah langkah-langkahnya
1. Download dan install terlebih dahulu iReport jika belum punya.
2. Jalankan iReport.
3. Pilih menu File kemudian New.
4. Pilih blank template atau sesuai selera, langsung saja tekan Open this Template karena kita akan menggunakan custom datasource.
5. Tambahkan 4 buah field pada laporan kita. Pilih fields pada menu sebelah kiri
6. Klik kanan pada fields dan pilih Add Field. Tambahkan keempat field berikut
7. Pastikan tipe keempat variabel masing-masing adalah
id : Integer
judul : String
penyanyi : String
pencipta : String
Pada menu Properties disebalah kanan, tipe variabel ini bisa dilakukan
8. Drag keempat field tadi kedalam laporan kedalam bagian yang bertulisan [rad-hl]Detail 1[/rad-hl]
9. Modifikasi desain menjadi seperti gambar dibawah ini atau sesuai selera
10. Klik laporan yang sedang dikerjakan pada menu inspector disebelah kiri. Pada menu properties disebelah kanan, ganti language yang digunakan dari Groovy menjadi Java.
11. Simpan laporannya
Pertanyaannya darimana keempat field tadi berasal? jawabnnya adalah berasal dari variabel yang terdapat pada kelas [rad-hl]Lagu[/rad-hl]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com.agung.springhibernatemaven.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; /** * * @author Agung Setiawan */ @Entity @Table(name = "LAGU") public class Lagu { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String judul; private String penyanyi; private String pencipta; //getters dan setters } |
Konfigurasi Spring-Jasper
Sebelum bisa digunakan kita perlu melakukan konfigurasi agar Jasper bisa diintegrasikan dengan Spring. Berikut adalah beberapa yang perlu dilakukan.
1. Tambahkan sebuah Bean pada kelas konfigurasi yaitu [rad-hl]WebAppConfig[/rad-hl] sebagai berikut
1 2 3 4 5 6 |
@Bean public XmlViewResolver xmlViewResolver(){ XmlViewResolver xmlViewResolver=new XmlViewResolver(); xmlViewResolver.setOrder(0); return xmlViewResolver; } |
Bean diatas membutuhkan sebuah file xml yang merupakan konfigurasi view jasper pdf kita. Secara default bean ini akan meload file [rad-hl]WEB-INF/view.xml[/rad-hl]
2. Buat sebuah file xml dengan nama [rad-hl]view.xml[/rad-hl] letakkan dibawah folder [rad-hl]WEB-INF[/rad-hl] dan berikut adalah isinya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="pdfReport" class="org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView" p:url="classpath:report.jrxml" p:reportDataKey="dataSource" /> </beans> |
Konfigurasi sudah selesai, langkah selanjutnya adalah coding
Coding Time
Sebelum kelupaan, merupakan langkah penting, letakkan file laporan [rad-hl]report.jrxml[/rad-hl] yang kita buat tadi pada folder src/main/resources/.
Untuk memangil laporan buat sebuah method baru pada [rad-hl]LaguController[/rad-hl] sebagai berikut
1 2 3 4 5 6 7 8 |
@RequestMapping(value = "pdf",method = RequestMethod.GET) public String getPdfReport(Model model, HttpServletResponse response){ List<Lagu> lagus=laguService.getLagus(); JRDataSource dataSource=new JRBeanCollectionDataSource(lagus); model.addAttribute("dataSource", dataSource); return "pdfReport"; } |
Running Program
Arahkan browser ke http://localhost:8080/SpringHibernateMaven/pdf
Laporan dalam bentuk pdf akan tampil di browser atau langsung terdownload
Berikut ini adalah screenshot-nya
Source Code
Source code bisa didownload pada Github saya disini