Pertama-tama Anda tidak menentukan jenis aplikasi yang ingin Anda buat, jadi saya agak umum dalam tanggapan saya. Anda juga tidak menyebutkan apakah Anda sudah berhasil membuat laporan pertama Anda (maksud saya, tanpa mengambil input pengguna apa pun). Jadi, di bawah ini saya menunjukkan bagian yang diperlukan untuk membuat JasperReport:
public void generateReport(ActionEvent actionEvent) throws FileNotFoundException {
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(PopulateBean.createBeanCollection());
Map parameters = new HashMap();
try {
InputStream is = new FileInputStream(new File("Source path to template.jrxml"));
OutputStream os=new FileOutputStream(new File("Resulting report.pdf"));
JasperDesign jasperDesign = JRXmlLoader.load(is);
JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint =
JasperFillManager.fillReport(jasperReport, parameters, ds);
JasperExportManager.exportReportToPdfStream(jasperPrint, os);
} catch (JRException e) {
e.printStackTrace();
}
}
Kode ini harus diintegrasikan ke dalam aplikasi Anda. Bagian yang Anda minta adalah:
Map parameters = new HashMap();
Anda tinggal memasukkan input yang dimasukkan oleh pengguna ke dalam peta ini. Contoh, jika Anda memiliki halaman JSF, Anda dapat mengambil nilai komponen UI-nya dan menyimpannya di peta ini
parameters.put("type_code", getTypeCodeUIComponent().getValue());
Anda akan melihat pada kode di atas bahwa peta ini diteruskan ke laporan:
JasperFillManager.fillReport(jasperReport, parameters, ds);
Satu-satunya yang tersisa adalah mengedit kueri laporan Anda, di iReport. Pertama Anda membuat parameter dengan nama yang sama persis seperti yang dimasukkan ke dalam peta (dalam contoh ini "type_code". Perhatikan, ini peka huruf besar/kecil). Kedua, Anda harus menggunakan klausa WHERE tempat Anda memfilter kolom tipe berdasarkan parameter ini, lihat di bawah:Dan ini dia beberapa tutorialnya:1 dan 2
Semoga ini bisa membantu!