Membuat Laporan dengan JasperReports

Membuat Laporan dengan JasperReports

JasperReports adalah pustaka Java untuk merancang dan membuat laporan. Tata letak laporan berada di templat `.jrxml`, data diisi dari basis data atau objek Java, dan hasilnya diekspor ke PDF, Excel, atau HTML. Artikel ini menunjukkan struktur templat dan kode yang membangun laporan dari daftar baris.

Catatan pengujian: komputer yang dipakai untuk menulis artikel ini tidak memiliki pustaka JasperReports, jadi kodenya belum dijalankan di sini. Tambahkan dependensinya seperti yang dijelaskan dokumentasi proyek dan uji sendiri.

Yang Anda butuhkan

Cara kerjanya

Diagram: templat .jrxml digabungkan dengan data menghasilkan PDF
Diagram: templat .jrxml digabungkan dengan data menghasilkan PDF

Langkah 1: rancang templat

File `.jrxml` adalah XML yang mendeklarasikan field data, header, baris detail, dan footer. Contoh field:

<field name="name" class="java.lang.String"/>
<field name="score" class="java.lang.Integer"/>

Di band `<detail>`, tambahkan `textField` yang merujuk ke `$F{name}` dan `$F{score}` untuk menampilkan nilai setiap baris.

Langkah 2: siapkan data dan bangun laporan

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import java.util.List;
import java.util.Map;

public class ReportDemo {
    public static class Row {
        private final String name;
        private final int score;
        public Row(String name, int score) { this.name = name; this.score = score; }
        public String getName() { return name; }
        public int getScore() { return score; }
    }

    public static void main(String[] args) throws Exception {
        List<Row> rows = List.of(new Row("Budi", 85), new Row("Siti", 72));
        JasperReport report = JasperCompileManager.compileReport("scores.jrxml");
        JasperPrint print = JasperFillManager.fillReport(report, Map.of(), new JRBeanCollectionDataSource(rows));
        JasperExportManager.exportReportToPdfFile(print, "scores.pdf");
    }
}

Kesalahan umum

Langkah berikutnya

Tambahkan grup ke laporan, misalnya total per mata pelajaran, atau kirim nama sekolah sebagai parameter.

Ringkasan

JasperReports memisahkan tata letak dari data. Templat menentukan tampilan, kode mengisi data, dan hasilnya diekspor ke format yang Anda perlukan. Dengan cara ini tata letak laporan mudah diubah tanpa menyentuh kode utama.