Sekilas mengenai Jasper Report : JasperReports is an open source Java reporting tool that can write to screen, to a printer or into PDF, HTML, Microsoft Excel, RTF, ODT, Comma-separated values and XML files. It can be used in Java-enabled applications, including Java EE or Web applications, to generate dynamic content. It reads its instructions from an XML or .jasper file.
selengkapnya : Jasper Report on Jaspersoft
Umumnya kita membuat sebuah aplikasi yang menghasilkan hasil olahan data dalam bentuk tabel yang akan langsung ditampilkan ke user melalui layar komputer dengan GUI (Swing atau web browser page) , diprint atau dalam bentuk reopen-able soft-copy/file (PDF,Microsoft Excel,RTF,ODT dll) . Untuk men-generate hasil olahan data tersebut kedalam bentuk file dengan template/desain yang diinginkan tentunya tidak mudah. Pertama kita harus membuat formula untuk mengenerate garis sesuai koordinat yang diinginkan untuk tabelnya, mengatur besar kecil font-nya, mengatur berapa halaman report, mengatur posisi gambar dan masih banyak lagi sampai dengan menyimpan file ke drive atau print yang harus dilakukan secara manual coding. Tentunya kegiatan tadi sangat menyita banyak waktu bagi para developer, apalagi jika harus membuat template/ desain laporan dengan bentuk yang lain. Oleh sebab itu digunakanlah JasperReport untuk mempermudah semua proses diatas tadi.
Penasaran seberapa mudahnya Jasper Report ? Berikut ini ialah langkah demi langkah tutorial cara menggunakan Jasper Report. Pada umumnya pembuatan report terdiri atas 3 langkah yaitu mengolah data yang ingin ditampilkan, membuat template desain report dan menampilkan report. Karena pengolahan data tergantung dari data yang ingin digunakan developer sesuai dengan kepentingan masing-masing, jadi saya hanya akan menjelaskan cara membuat template/desain report dan menampilkan report tersebut.
Pertama-tama siapkan tools yang akan digunakan, yaitu IDE, iReport ,library JasperReport & kawan-kawannya (bisa dicari melalui mesin pencari kesukaan masing-masing). Saya sendiri menggunakan IDE NetBean 6.9, iReport 3.7.4 dan serangkaian libraries dibawah ini :
- jasperreports-3.7.4.jar
- commons-beanutils-1.8.0.jar
- commons-collections-2.1.1.jar
- commons-digester-1.7.jar
- commons-logging-1.0.4.jar
- groovy-all-1.5.5.jar
- gson-1.4.jar
- iText-2.1.7.jar
Setelah memastikan tools dan library yang dibutuhkan lengkap, kita masuk ke tahap desain template.
DESAIN TEMPLATE
Buka iReport dan pilih File – New – Report, beri nama “TutorialJasper” disini kita disuruh memilih template dasar yang akan digunakan untuk desain report, untuk tutorial ini saya pilih Blank A4. Kemudian masukkan nama template reportnya dan lokasi penyimpanannya, tekan Next lalu Finish dan anda akan langsung dihadapkan dengan tampilan untuk mendesain templatenya.
Perhatikan menu Report Inspector :
Yang perlu diperhatikan ialah Parameters dan Band. Parameters ialah sejumlah parameter yang akan digunakan untuk mengisi report yang sedang kita buat template-nya sedangkan Band ialah tempat dimana report akan dituliskan yaitu Title, Page Header sampai dengan Background . Sifat-sifat Band ini beraneka ragam sesuai namanya. Title hanya dituliskan sekali dipaling atas dan hanya berada di page 1, Page Header ,Column Header, Detail, Column Footer,Page Footer dituliskan disetiap halaman, Last Footer & Summary hanya dituliskan diakhir page. Untuk mengenal lebih jauh mengenai sifat-sifat Band ini , bisa dengan cara mencobanya sendiri setelah tutorial ini.
Perhatikan juga Palette – Report Elements & Tools :
Drag and drop Report Element – Table kedalam Detail, pilih Just Create Empty Database, set Columns jadi 3 lalu tekan next. Setelah itu setup table sesuai warna yang diinginkan dengan properties seperti berikut :
Setelah itu tekan Finish. Klik Main Report di tengah bawah untuk kembali ke desain menyeluruh.
Drag and drop Tools – Current Date kedalam Page Header dan pilih format penanggalan sesukanya. Drag and drop Report Elements – Static Text kedalam Title dan edit judul report sesukanya.
Sekarang mulai membuat Parameters, klik kanan pada Parameters lalu tekan Add. Buatlah 2 buah Parameters, yang satu diganti namanya jadi “author” yang satunya lagi ganti jadi “dataSource” dengan cara klik kanan pada parameter tersebut lalu rename. Klik parameter “dataSource,” perhatikan pojok kanan bawah dari iReport, akan terlihat – dataSource – Properties, ubah Parameter Class-nya menjadi “net.sf.jasperreports.engine.JRDataSource” sedangkan untuk author dibiarkan saja “java.lang.String”.
NB : semua penamaan Parameters dan set Parameter Class tanpa tanda kutip !
Selanjutnya drag and drop Parameters “author” di Last Page Footer tadi dan rapihkan.
Kembali perhatikan Report Inspector disebelah kiri, expand Table Data Set 1 , klik kanan Fields , klik Add, buat 3 field. Ganti ketiga nama field tersebut jadi “first”,”midle” & “last”.
Sekarang tekan tombol Table 1 di tengah bawah untuk kembali ke desain Table.
Desain tabel, rapihkan lalu drag and drop ketiga field tadi sehingga menjadi seperti dibawah ini :
Sekarang kembali ke Main Report, klik kanan Table, klik Edit Table Datasource, tekan tombol bergambar pensil, replace ekspresi dengan mencari dan klik ganda parameter “dataSource” yang sudah dibuat ,tekan apply, lalu tekan OK sampai semua dialog tertutup.
Langkah terakhir ialah compile, jika berhasil compile maka akan ditemukan file bernama report yang telah dibuat dengan extension .jasper, file inilah yang nantinya digunakan di program java-nya.
MENAMPILKAN REPORT DARI APLIKASI JAVA
Pertama-tama buat project baru, beri nama sesukanya, klik kanan Libraries – Add JAR/Folder dan tambahkan semua libraries yang disebutkan sebelumnya ke dalam project tersebut. Copy file TutorialJasper.jasper yang sudah dibuat tadi ke dalam project satu package dengan Main.class. Buat entitas atau tipe bentukan baru atau class bernama DummyData, isinya seperti dibawah ini :
/** * * @author mdsaputra */ public class DummyData { private String first; private String middle; private String last; public String getFirst() { return first; } public void setFirst(String first) { this.first = first; } public String getMiddle() { return middle; } public void setMiddle(String middle) { this.middle = middle; } public String getLast() { return last; } public void setLast(String last) { this.last = last; } }
NB : Penamaan atribut harus sama dengan ketiga nama field yang dibuat tadi.
Selanjutnya buat engine untuk men-generate data dummy-nya dan menampilkan Jasper-nya menggunakan sekumpulan data dummy yang sudah ter-generate.
import java.io.FileInputStream; import java.io.FileNotFoundException; 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.JREmptyDataSource; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperExportManager; 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 mdsaputra */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { new Main().report(); } private void report() { Map params = new HashMap(); //buat data dummy List<DummyData> listOfDummyData = new ArrayList<DummyData>(); DummyData dummyData = new DummyData(); for (int i = 0; i < 28; ++i) { dummyData = new DummyData(); dummyData.setFirst("Meihta"); dummyData.setMiddle("Dwiguna"); dummyData.setLast("Saputra"); listOfDummyData.add(dummyData); } JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(listOfDummyData); System.out.println(dataSource.getRecordCount()); params.put("author", "by : mdsaputra.wordpress.com"); params.put("dataSource", dataSource); //net.sf.jasperreports.engine.JRDataSource try { JasperPrint printer = JasperFillManager.fillReport(getClass().getResourceAsStream("TutorialJasper.jasper"), params, new JREmptyDataSource()); //generate kedalam file report.pdf JasperExportManager.exportReportToPdfFile(printer, "C:/report.pdf"); //tampilkan print viewer/dialog //ya benar, jasper memiliki print dialog sendiri, kerenkan? //jadi tidak usah repot membuka file pdf yang sudah digenerate, dan memanggil fungsi print bawaan java JasperViewer jv = new JasperViewer(printer); jv.show(); } catch (JRException ex) { ex.printStackTrace(); } } }
Source code diatas menampilkan print viewer dan mengenerate file pdf report.pdf, jika saat membuat template report-nya rapih dan benar, hasilnya bisa seperti dibawah ini :
Gampangkan? Selamat mencoba, maju terus para developer java Indonesia! Semoga bermanfaat. 🙂
subscribe & fast response : Follow @etayuy
ichano
Jan 08, 2011 @ 01:56:20
bung dapetin librarinya dmana ya?? kok g nemu2,,.
bisa kirim email g almatny
Meihta Dwiguna Saputra
Jan 08, 2011 @ 08:23:31
semua linknya ada di : http://www.installationwiki.org/JasperReports 🙂
Export Jasper Report to Excel « Meihta Dwiguna Saputra's Knowledge Base
Feb 04, 2011 @ 10:41:04
Andre
Feb 07, 2011 @ 15:57:51
Bang, boleh minta working copy nya ? saya coba kok gak berhasil. Ntah kenapa selalu ada Exception kalau diberi JRBeanCollectionDataSource dan maunya diberi JREmptyDataSource. Sudah saya cek di property tipenya tapi tetap error.
Meihta Dwiguna Saputra
Feb 08, 2011 @ 19:08:58
ada sedikit kesalahan pada tahap add dataSource, sudah saya benahi menjadi :
“Sekarang kembali ke Main Report, klik kanan Table, klik Edit Table Datasource, tekan tombol bergambar pensil, replace ekspresi dengan mencari dan klik ganda parameter “dataSource” yang sudah dibuat ,tekan apply, lalu tekan OK sampai semua dialog tertutup.”
klo masih blm bisa jg, saya akan kirimkan via email jasper yg saya buat, email addressnya apa mas dre?
mifta
May 21, 2013 @ 19:54:00
bang punya ane error di pembuatan reportnya,,
ketika ane compile malah mncul
field not found : first
field not found : middle
field not found : last
solusinya gmna ??
ane uda ikutin alurr
hendra
Feb 14, 2011 @ 16:35:57
mas saya mau tanya juga, kalo misalnya create pdf nya ambil data dari database gimana ya mas caranya? yg mas buat kan create pdf dari data yang ada di dummy Data kan mas, sya sudah coba obrak abrik codenya mas tapi malah kacau . mohon bantuannya ya mas, Terima Kasih sebelumnya.
Meihta Dwiguna Saputra
Feb 16, 2011 @ 16:43:31
Ada dua cara, bermain di jasper nya atau bermain di javanya :
-klo bermain di javanya tinggal ambil data bro hendra dari database trus for each masukin ke tipe bentukan data dummy.
atau edit field di jaspernya menyesuaikan dengan entity database bro hendra.
-klo bermain di jaspernya , kudu create data source dan ubah table datasourcenya. Tentunya table database harus mengikuti field name yg ada dijasper nya, atau sebaliknya field namenya mengikuti nama tablenya.
klo saya lebih prefer bermain di javanya.
hendrajuve
Feb 22, 2011 @ 10:37:49
ooo gtu ya …,
saya juga sudah coba juga jalankan dari java – ireport itu. lalu pas save datanya ambil save ke pdf,xls juga kenapa ya cuman 0kb hasilnya, dan tidak bisa dibuka lagi. itu apa ya masalahnya ? apa ada yang tertinggal saya settingannya.Atau apa bisa dihilangkan ngk icon save to di report tuh …..?
Mohon bantuannya lagi ya,Terima Kasih
Meihta Dwiguna Saputra
Feb 22, 2011 @ 10:52:53
bro hendra save ke xls dah mengikutin Export Jasper to Excel ??
klo mengikuti tutorial saya secara utuh, apakah semua baik-baik saja?
klo iya, berangkat dari checkpoint it coba di custom sedikit demi sedikit dengan approach seperti ini :
1. follow my default tutorial
2. if ok, custom source of data dummy from database
jadi yang tadinya data dummy diisi dari hardcode di java, skarang diisi dari data yg diambil di database.
3. if ok, mulai blajar custom keseluruhan, baik database, tipe bentukan sesuai dengan database, maupun field di jaspernya.
lakukan perlahan-lahan dengan teliti, Insya Allah lebih baik daripada buru”tp malah ada yg ketinggalan 😉
hendrajuve
Feb 22, 2011 @ 13:16:23
ok deh. tapi sya kurang ngerti dummy tu sih…tapi sya coba dlu.makasih bos…. oh ya satu lagi nih bos saya mau tnya jika pas save pdf itu dari ireport tetapi hasilnya 0kb dan tidak bisa dibuka lagi, gimana ya? apa salahnya ya? hehehehe maaf bos bnyak tanya nih…..,
terima kasih sebelumnya,
Meihta Dwiguna Saputra
Feb 22, 2011 @ 14:36:14
dummy itu cmn tipe bentukan yang memiliki variable first, middle, last.
bebas mau dikasih nama aja, disini saya kasih nama dummy.
pemakaian tipe bentukan inipun bermacam-macam, klo disini saya gunakan sebagai virtualisasi dari suatu table, anggap aja table dummy yang memiliki column first, midddle dan last. 🙂
save pdf dari ireport?klo pake cara saya, kayanya itu masih pdf viewer buat testing hasil, klo pdf asli yg bisa dibuka tuh yang disimpan ke hardisk oleh javanya, berlokasi di “C:/report.pdf”.
oh iya perlu diperhatikan, penamaan file ireport(jrxml & jasper) yang saya gunakan ialah TutorialJasper.
hahaha, gpp bro, sama” 😉
maaf klo tutorialnya sulit untuk dimengerti. 😐
hendrajuve
Feb 22, 2011 @ 15:10:34
ok bro ,,, makasih ya atas pedomannya… sya coba dlu…
🙂 keep posting ya…sukses selalu
tisna_211v
Apr 29, 2011 @ 20:17:28
gan mau tanya nih. gmn caranya biar langsung ngeprint tanpa nampilin dialongnya dulu. misal : kyk yg model dikasir2, pada saat transaksi disimpan, langsung ngeprint reportnya tanpa nampilin dialongnya dulu. tolong pencerahannya gan n tolong kirim jwbnnya ke email saya y?
Meihta Dwiguna Saputra
May 06, 2011 @ 16:01:19
JasperPrintManager.printPage(jasperPrint,pageIndex,booleanPrintDialog);
*jasperPrint = jasperPrint
*pageIndex = page index yg mau di print, 0 jika halaman pertama, dst
*booleanPrinDialog true klo mau munculin print dialog native (sistem operasi) false jika tidak mau menampilkan print dialog tsb. 🙂
dedi
Apr 09, 2013 @ 00:07:14
Gan kalo coding nya seperti ini mana yg perlu diganti supaya bisa ngeprint langsung tanpa menampilkan jasperviewer :
private static void printReport(
JRBeanCollectionDataSource vData,
String vReport){
String dirrTemplate=””;
String dirrResult=””;
try {
File dir1 = new File (“.”);
dirrTemplate=dir1.getCanonicalPath()+
“\\report\\template\\”;
dirrResult=dir1.getCanonicalPath()+
“\\report\\result\\”;
Map parameters = new HashMap();
JasperFillManager.fillReportToFile(
dirrTemplate+ vReport + “.jasper”,
dirrResult +vReport +”.jrprint”,
parameters, vData );
File sourceFile =
new File(dirrResult+
vReport + “.jrprint”);
JasperPrint jasperPrint =
(JasperPrint)JRLoader.
loadObject(sourceFile);
JasperViewer.viewReport(
jasperPrint, false );
}
catch (JRException e){
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
}
private void showKwitansi(String vNoJual) {
PenjualanFactory.setConnection(
POS.getConnection());
PenjualanFactory.setNoJual(vNoJual);
JRBeanCollectionDataSource dt=
new JRBeanCollectionDataSource(
PenjualanFactory.getRecord());
printReport( dt, “Kwitansi”);
}
}
Meihta Dwiguna Saputra
Apr 09, 2013 @ 14:52:24
bisa dengan cara yg dedi comment, bisa juga dengan JRPrintServiceExporter
dedi
Apr 09, 2013 @ 15:48:09
maksud nya gmn gan kurang paham, mohon pencerahan nya? maaf masih newbi, tujuan saya supaya struk bisa lgsg ngeprint tanpa menampilkan jasper viewer dulu
Meihta Dwiguna Saputra
Apr 09, 2013 @ 16:08:57
tidak usah pake JasperViewer, use below instead :
PrintServiceAttributeSet psas = new HashPrintServiceattributeSet();
psas.add(new PrinterName(“NamaPrinter”,null));
JRPrintServiceExporter jpse = new JRPrintServiceExporter();
jpse.setParameter(JRPrintServiceExporterParameter.PRINTER, jasperPrint );
jpse.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE, psas );
jpse.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, false);
jpse.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, false);
jpse.export();
dedi
Apr 09, 2013 @ 21:40:28
balasan untuk koment anda trakhir:
untuk desain hasil print nya tetep kwitansi saya khan gan?
terima kasih buanyaakk.. saya coba dulu ya kalo gak bisa nanya lagi.. trim’s 🙂
calvin
Aug 02, 2011 @ 10:09:52
Gan, gimana cara ngeprint data dari tabel java sebelum di save ke mysql.
kalau menggunakan jasper gimana caranya..??
Meihta Dwiguna Saputra
Aug 02, 2011 @ 13:47:42
Coba ikuti dulu tutorial ini sampai selesai bro calvin, nanti tinggal di implementasikan sesuai masalah bro calvin 😉
Imaduddin Al-Nu'man
Aug 25, 2011 @ 05:02:57
mohon bantuannya…
link download working copy nya mana ??????
mohon bantuannya….. dah seminggu ga beres-beres…
sammy lie
Oct 19, 2011 @ 15:10:23
Mas, minta bantuan dong. Bagaimana cara, untuk setting jasper supaya convert to number? soalnya saya ada tugas dari atasan saya untuk membuat reporting excel formatting number.
bisa kirim ke email saya utk jawabannya: deejay_sky83@yahoo.com
Thanks,
Sam
Meihta Dwiguna Saputra
Oct 26, 2011 @ 17:31:44
sudah coba passing parameter yang tipenya Integer dan dimasukkan sebagai detail (yg ditulis berulang kali sebanyak records)?
sammylie
Nov 03, 2011 @ 16:52:05
Bisa kasih contohnya ga pak, apa yg di passing parameter yg tipe integernya?
Meihta Dwiguna Saputra
Nov 03, 2011 @ 16:53:41
ya parameternya tinggal dirubah jadi integer, dan jangan lupa di jaspernya juga demikian.
sammylie
Nov 07, 2011 @ 16:49:24
Tetap ga bisa pak, apabila saya klik reporting excelnya, dan hasilnya tetap akan ngebaca string bukan number.
Meihta Dwiguna Saputra
Nov 09, 2011 @ 17:16:37
yakin sudah merubah tipe data yg disisi jaspernya???
sammylie
Nov 04, 2011 @ 13:23:49
Mas, mau tanya. Apakah benar jasper report tidak support number di excel? karena saat ini jasper yg saya pakai versi 0.3.2 dan untuk javanya menggunakan versi 1.4.2, hasilnya tidak support number tetapi text waktu di excel lalu juga tidak bisa di sum otomatis . dan harus manual convert number.
sammylie
Nov 04, 2011 @ 13:38:37
Lalu bagaimana untuk setting jasper report supaya tidak manual convert number di excel? mohon pencerahannya.
rizki
Nov 30, 2011 @ 09:28:21
bro, boleh minta contoh project ini gak? aku coba tp blm berhasil2….
Meihta Dwiguna Saputra
Dec 06, 2011 @ 14:32:28
http://www.ziddu.com/download/17702305/TutorialJasperReport.zip.html
sayfull
Nov 30, 2011 @ 10:13:26
28
Exception in thread “main” net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0
at net.sf.jasperreports.engine.JRHyperlinkHelper.getLinkTarget(JRHyperlinkHelper.java:269)
at net.sf.jasperreports.engine.base.JRBaseTextField.normalizeLinkTarget(JRBaseTextField.java:313)
at net.sf.jasperreports.engine.base.JRBaseTextField.readObject(JRBaseTextField.java:377)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.ArrayList.readObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
at net.sf.jasperreports.engine.base.JRBaseReport.readObject(JRBaseReport.java:742)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:194)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:603)
at com.report.Main.report(Main.java:53)
at com.report.Main.main(Main.java:30)
kalo ada error gitu kira” karena apa yah mas
Meihta Dwiguna Saputra
Dec 06, 2011 @ 14:36:14
sudah pastikan lib jaspernya lebih tinggi versinya dari iReport yang digunakan untuk buat dan compile jrxml nya??
Rudy Thong
Dec 06, 2011 @ 12:21:20
Thanks pencerahannya Eta \o/
tunggalsigitnugroho
Dec 06, 2011 @ 15:31:57
Kok terjadi error kayak gini ya bang??
28
Dec 7, 2011 3:21:25 AM net.sf.jasperreports.engine.component.ComponentsEnvironment findComponentBundles
WARNING: Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
net.sf.jasperreports.engine.JRException: Incompatible net.sf.jasperreports.engine.data.JRBeanCollectionDataSource value assigned to parameter dataSource in the report1 dataset.
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameter(JRFillDataset.java:905)
at net.sf.jasperreports.engine.fill.JRFillDataset.setFillParameterValues(JRFillDataset.java:644)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:586)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1276)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:897)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:860)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:605)
at Reports.Main.report(Main.java:45)
at Reports.Main.main(Main.java:22)
Meihta Dwiguna Saputra
Dec 06, 2011 @ 16:21:22
1. Pastikan libraries jaspernya lebih tinggi dari iReport yang digunakan.
2. Cek lagi propertiesnya apa sama sesuai dengan tutorial yang saya buat.
3. Coba pelajari sample yang sudah saya post linknya, atau cari di Box Widget di sebelah kanan blog saya.
bimbim
Dec 26, 2011 @ 16:58:30
oh…ya mas cara ngegabungin file ext .jar dgn netbeans na gi mana mas
Meihta Dwiguna Saputra
Jan 02, 2012 @ 16:47:57
ext lib?
klo nambahin library ke NB tinggal klik kanan add library di icon folder Libraries di project anda ;).
novriandi
Jan 28, 2012 @ 12:40:37
gan gimana ya membuat penjumlahan dalam ireport dalam satu kolom misalnya dalam satu kolom itu terdapat banyak field trus dibawahnya kita ingin menjumlahkan secara otomati seperti perintah SUM di excel mohon bantuannya
trims
kirim ke
novri.meranti@yahoo.com
gheta
Jan 29, 2012 @ 19:50:04
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
net.sf.jasperreports.engine.JRException: Incompatible net.sf.jasperreports.engine.data.JRBeanCollectionDataSource value assigned to parameter dataSource in the tutorialjasper dataset.
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameter(JRFillDataset.java:903)
at net.sf.jasperreports.engine.fill.JRFillDataset.setFillParameterValues(JRFillDataset.java:642)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:585)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1280)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:901)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:605)
ini kenapa gan?? mohon bantuannya . .
Doank
Feb 11, 2012 @ 22:02:45
mz, gimana carax bikin Multipage pada jasper.
saya butuh 40 halaman dalam satu report.
buat Raport siswa. 1 kls.
Gimana ya??
mohon bantuanx..
Meihta Dwiguna Saputra
Feb 13, 2012 @ 10:58:10
itu sudah diatur sama jasapernya kok 😉 , data yg dituliskan di detail misal tabel berisi data akan dilanjutkan ke halaman berikutnya halaman pertama sudah mencapai atas, dst.
noer_manizz
Mar 01, 2012 @ 12:00:27
mau tanya. saya punya file jasper dengan field urutan ke bawah
A
B
C
saya ingin rubah ke excel dengan format field
A B C
tapi saya ingin di tampilan PDF dengan format
A
B
C
gimana caranya???
Thx
Meihta Dwiguna Saputra
Mar 02, 2012 @ 14:59:35
mau g mau buat dan generate 2 jasper masing”dengan format field berbeda
pujiati
Apr 23, 2012 @ 15:36:24
Saat buat report paling akhir ada tips spt ini : Langkah terakhir ialah compile, jika berhasil compile maka akan ditemukan file bernama report yang telah dibuat dengan extension .jasper, file inilah yang nantinya digunakan di program java-nya.
Saya pemula mohon bantuan dimana comment atau perintah untuk compile tsb?
pujiati
May 03, 2012 @ 15:29:42
Reply dong email yang pertama
mds
May 03, 2012 @ 15:35:20
coba hover mousenya dibeberapa icon di toolbox jaspernya, nanti ada tulisan compile nah itu dia. klo g salah gambar palu atau kunci tang gitu
nunuk
May 11, 2012 @ 15:16:55
Mw nanya ni…
Tiap saya mw cetak laporan slalu keluar error kyk gini:
Exception in thread “AWT-EventQueue-0” java.lang.NoSuchMethodError: net.sf.jasperreports.engine.component.DefaultComponentManager.setDesignConverter(Lnet/sf/jasperreports/engine/component/ComponentDesignConverter;)V
at net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.(ComponentsExtensionsRegistryFactory.java:99)
at java.lang.Class.forName0(Native Method)
Apanya yg msh salah ya? Librarynya jg dah ditambahkan….
Mohon bantuannya. Mksh. 🙂
di
May 21, 2012 @ 16:58:38
mas, itu uda pekek multicell gak ?
Alwin
Jun 26, 2012 @ 03:16:44
mas, klo saya punya data yang format nya ada rinciannya ky gni gmn printnya yah supaya ga tercetak satu record full :
misalkan pada satu pembelian barang dengan nomor pembelian 001 terdapat tiga barang dalam rinciannya yang memiliki kode 01,02,03. kan kalo dicetak rekapitulasi pembeliannya dari database akan tercetak tiga baris seperti : “001”,”01″ ; “001”,”02″; “001”,”03″
gimana caranya supaya dapat dicetak nomor pembelian cukup sekali di baris pertama kemudian rincian ketiga barang tersebut mengikuti per barisnya.. jadi seakan-akan record yang tercetak adalah: “001”,”01″ ; ” “,”02″; ” “,”03”.
dan untuk seterusnya akan tercetak seperti itu per nomor pembelian.
mohon bantuannya 🙂 thanks
Meihta Dwiguna Saputra
Jul 23, 2012 @ 22:30:35
sebenarnya ada solusi yg baik dengan jasper, tapi sy blm sempat menulisnya, untuk sementara dijava saat mengumpulkan kedalam list pojo, coba masukin “”(String kosong) kedalam atribut/column yg sama if entity/pojo yang nomor pembeliannya sama 😀
Fahmi
Aug 03, 2012 @ 09:51:36
Mas boleh minta file jrxml nya ga? drtd buat blm bisa2. trims
fahmi.rnf@gmail.com
Step by step Jasper Report Tutorial II – Variable Expression « Meihta Dwiguna Saputra's Knowledge Base
Aug 08, 2012 @ 14:54:45
higi
Sep 27, 2012 @ 10:05:27
bung, cara aktifin buton reload / refresh di view jaspernya gimana ya?
irwanlianyy@gmail.com
Dec 12, 2012 @ 12:49:05
gan saya mao tanya….
gimana caranya jumlahin data dalam jtable, data yg mao saya jumlahin cuman data yang saya panggil melalui search. data diambil dari database…
mohon pencerahannya gan…
thanks sbelomnya…
Meihta Dwiguna Saputra
Dec 12, 2012 @ 15:51:42
coba baca disini : https://mdsaputra.wordpress.com/2012/08/08/step-by-step-jasper-report-tutorial-ii-variable-expression/
semoga membantu
asept
Jan 15, 2013 @ 23:56:16
Mas saya bingung ama kata2 ini
“replace ekspresi dengan mencari dan klik ganda parameter “dataSource” yang sudah dibuat”
report udh berhasil keluar, tapi isinya null dan cuma ada satu baris, kayanya sih salah pas ditahapan yg diatas, soalnya ane bingung…
Meihta Dwiguna Saputra
Apr 22, 2013 @ 11:57:08
ekspresi dari tablenya diganti dengan dataSource
atha
Jul 18, 2013 @ 12:21:29
Mas, klw menggunakan datasource expresi tabelnya diganti seperti apa ya?
saya ingn menggunakan emptyconnection
apa sama caranya “replace ekspresi dengan mencari dan klik ganda parameter “dataSource” yang sudah dibuat” di ireport 1.3.2 ?
saya sudah coba dengan ekspresi $F{first} tetapi hasilnya masih null,
mohon bantuannya mas
Achmad Taufik
Apr 19, 2013 @ 22:16:09
Salam IT Mas.
Tidak salah kan mengawali belajar dengan bertanya ?
say pakai Netben 7.0 dan Ireport Plug in 3.2.0 dg banyak sekali file .jar di dalmnya.
saya berhasil membuat reportnya, tapi gagal memanggilnya di viewer. errornya seperti ini. :
udah tak coba utak atik semampu saya, tp belum bisa. “Mohon dibantu ya ?”
——–
run:
Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/springframework/core/io/Resource
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:157)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:53)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.instantiateRegistry(DefaultExtensionsRegistry.java:198)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:175)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:135)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:121)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:98)
at net.sf.jasperreports.engine.util.JRStyledTextParser.(JRStyledTextParser.java:76)
at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:174)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:74)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:56)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:143)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:53)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at ControlReport.jButton1ActionPerformed(ControlReport.java:84)
at ControlReport.access$000(ControlReport.java:28)
at ControlReport$1.actionPerformed(ControlReport.java:51)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: org.springframework.core.io.Resource
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
… 56 more
BUILD SUCCESSFUL (total time: 4 seconds)
anom
Apr 27, 2015 @ 09:57:52
biasanya ini karena ada library yg blm lengkap
Miu Hara
May 18, 2013 @ 08:50:30
mas bro kalo yang mau dibuat laporan tu datanya di ambil bukan dari tabel database tapi dari tabel yang ada di aplikasinya tu gmna ya?,,
mohon bantuannya ya,,, 🙂
rikckie
May 30, 2013 @ 09:06:22
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 438; Document root element “jasperReport”, must match DOCTYPE root “null”.
kalo error kaya gitu gmn cara ngatasinya mas?
mohon bantuannya?
Robby
Jul 15, 2013 @ 11:30:47
bro mau tanya tp maaf rada OOT dikit, intinya saya ada aplikasi pake netbeans pake ireport juga. pas laporan dijalanin dari netbeans its work, tapi pas di compile dan udah jadi jar trus dijalanin lewat jarnya, laporan ga mau muncul. Padahal di netbeans ga ada keterangan error. Masalahnya dimana ya?
Bang Colo
Nov 01, 2013 @ 12:17:32
net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 1. Field not found : fisrt 2. Field not found : middle 3. Field not found : last
Kenapa hasilnya begini ya gan?
ner
Nov 23, 2013 @ 14:58:43
Mas mau nanya donk, kenapa aplikasi jasper saya ngak bisa dibuka, jangankan dipanggil lewat netbeans, di buka manual aja ngak bisa, kesalahannya dimana ya???
Riiand Dhira
Dec 18, 2013 @ 15:11:39
Mohon Pencerahannya Mass
net.sf.jasperreports.engine.JRException: Incompatible java.util.Date value assigned to parameter tgl1 in the null dataset.
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameter(JRFillDataset.java:905)
at net.sf.jasperreports.engine.fill.JRFillDataset.setFillParameterValues(JRFillDataset.java:644)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:586)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1276)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:892)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at perpustakaan_sma_utama.Tableseluruhpinjaman.jButton4ActionPerformed(Tableseluruhpinjaman.java:377)
at perpustakaan_sma_utama.Tableseluruhpinjaman.access$000(Tableseluruhpinjaman.java:40)
at perpustakaan_sma_utama.Tableseluruhpinjaman$1.actionPerformed(Tableseluruhpinjaman.java:154)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
singgih
Mar 05, 2014 @ 11:45:31
Mas apakah tools yg diatas itu support untuk netbeans IDE 7.3?
Bagi tool jasperreport sama ireportnya dong..
Email : singgihputra@rocketmail.com
Mohon bantuannya mas
Terima kasih 🙂
doni
Dec 01, 2014 @ 14:59:45
java.lang.NoSuchMethodError: net.sf.jasperreports.engine.fill.JRFillContext.getFillCache(Ljava/lang/String;)Ljava/lang/Object;
boz tolong penjelasannya dong kalu ini apa mksudnya.
Ana Zhahara
Mar 29, 2015 @ 14:16:33
sya ingin menampilkan laporan yg berisi tgl laporan diacc dengan format tanggal “26 Maret 2015” tetapi ketika dipreview dan dipanggil dri project netbeansnya “26 March 2015”. Padahal di ireport dan setting komputer sudah dlm bhs indonesia.Mohon bantuannya.
Domenic Delling
Mar 31, 2018 @ 23:36:06
This website is completely awesome. I’ve ask these details a
great deal and I realised that is professional, fast to understand.
I congratulate you because of this article that I’ll recommend
to the people friends. I request you to go to the gpa-calculator.co page where
each pupil or university student can find ratings gpa marks.
Have a great day!