Sebelum terus membaca tutorial ini saya sarankan untuk terlebih dahulu membaca Step by step Jasper Report Tutorial . Di tutorial sebelumnya sudah saya terangkan dasar-dasar dari Jasper Report dan iReport serta pemanggiilannya dengan aplikasi java, oleh karena itu dalam tutorial ini saya hanya akan menerangkan beberapa penggunaan Variables (fx) bawaan iReport atau custom Variables.

FXPanel

Variables (fx) panel terletak didalam Report Inspector, tujuan variable ini ialah untuk mempermudah pembuatan report misal untuk menangani halaman dapat menggunakan variable PAGE_NUMBER , menangani jumlah total halaman dapat menggunakan variable PAGE_COUNT, menangani total column dapat menggunakan variable COLUMN_COUNT dan seterusnya. Hanya dengan menempatkan (drag and drop) variable ini didalam Designer window, maka secara otomatis nilainya akan di diberikan oleh jasper saat report dicetak. Kita juga dapat membuat custom variable sendiri, misal yang bertujuan untuk menghitung nilai total dari suatu kolom atau beberapa kolom yang dipilih. Untuk mengetahui cara penggunaannya mari langsung saja ke langkah demi langkah pembuatan report menggunakan variable.

Pertama-tama buat Parameters author dan title dengan default Parameter Class java.lang.String , lalu buat Fields name, value1, value2, value3. Rubah Parameter Class value1, value2 dan value3 menjadi java.lang.Integer.

Parameters and Fields

Selanjutnya mulai membuat custom Variables menggunakan ekspresi dari Fields tadi. Pada panel Variables klik kanan dan pilih Add Variable , buat dua variable yaitu subTotal dan Total. Klik variable subTotal, di Properties rubah Calculation menjadi Sum , Variable Class menjadi java.lang.Integer kemudian edit ekspresinya menjadi $F{value1}+$F{value2}+$F{value3} sedangkan untuk variable total Calculation juga Sum dan Variable Class java.lang.Integer namun dengan ekspresi $V{subTotal} .

subTotal Properties

Sekarang drag and drop Parameters, Fields dan Variables yang telah dibuat bersama Static Text dan Line sehingga seperti gambar dibawah ini.

Perlu diperhatikan untuk bagian total menggunakan Group Footer dengan Group Exspression $V{PAGE_NUMBER} , hal ini dilakukan untuk menghindari terciptanya ruang kosong antara detail dan total disaat jumlah record yang dituliskan tidak memenuhi panjang template yang sedang digunakan. Adapun cara membuat Group Footer ialah dengan cara klik kanan nama project dalam Report Inspector lalu pilih Add Report Group , beri nama lalu pilih Group by the following Expression dan isi ekspresinya dengan $V{PAGE_NUMBER} .

Setelah selesai mendesain report, compile project (jrxml) sehingga menghasilkan file jasper.

Langkah selanjutnya ialah membuat aplikasi java yang akan menggunakan jasper yang telah dibuat. Tambahkan library jasper yang dibutuhkan kedalam project (list library ada dalam tutorial sebelumnya) , lalu ikuti source code dibawah ini :

package mds.tutorial.jasperreport;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;

/**
*
* @author Meihta Dwiguna Saputra
*/
public class Main {

    public static void main(String[] args) {
        List<Whatever> whatevers = new ArrayList<Whatever>();
        for (int i = 0; i < 10; i++) {
            Whatever whatever = new Whatever();
            whatever.setName("Meihta Dwiguna Saputra");
            whatever.setValue1(i);
            whatever.setValue2(i+i);
            whatever.setValue3(i+i+i);
            whatevers.add(whatever);
        }
        try {
            JasperPrint jasperPrint = new Main().generatePscSellingRecapSummary(whatevers, "Step by step Jasper Report Tutorial II – Variable Expression", "mdsaputra.wordpress.com");
            JasperViewer jv = new JasperViewer(jasperPrint, true);
            jv.setVisible(true);
        } catch (JRException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public JasperPrint generatePscSellingRecapSummary(List<Whatever> whatevers, String title, String author) throws JRException {
        String jasperFile = "JasperReportTuturialII.jasper";
        Map params = new HashMap();
        JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(whatevers);

        params.put("title", title);
        params.put("author", author);

        //Berbeda dengqn tutorial sebelumnya, pada tutorial ini kita tidak menggunakan JREmptyDataSource()
        //karena dijasper tidak menggunakan table dataset yang diisi nilainya melalui map params
        JasperPrint printer = JasperFillManager.fillReport(getClass().getResourceAsStream(jasperFile), params, dataSource);
        return printer;
    }
}

Jangan lupa membuat Class POJO Whatever.java dengan attribute name (String), value1 (int), value2 (int) dan value3 (int) lengkap dengan encapsulation (setter-getter). Jika aplikasi dibuat dengan benar maka akan menghasilkan seperti gambar dibawah ini saat dijalankan :

Terimakasih telah membaca, semoga tutorial diatas membantu 😉 .

Project dapat di download di MDSaputra’s Box dengan password : mdsaputra

Subscribe & fast response :