Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How Vector<Vector> Receipt used as JasperReports DataSource with Java?

I have a Vector receiptOrder and I want to print that receipt to thermal printer using iReport.

I get 3 classes:

  • MyDataSource which implements JRDataSource

  • MyDataSourceProvider which implements JRDataSourceProvider

  • JRBasicField which implements JRField

How I can setup the JasperReports datasource with that vector?

  • i made this changes .

    • load jrxml file

      JasperDesign jasperDesign = JRXmlLoader.load("c:/PrintReceipt.jrxml");
      JasperReport jr = JasperCompileManager.compileReport(jasperDesign);
      
    • pass orderRows which is Vector<Vector> to MyDataSourceProvider then Create datasource

      JRDataSourceProvider dsp = new MyDataSourceProvider(orderRows);
      JRDataSource dataSource = dsp.create(jr);
      JasperPrint jasperPrint = JasperFillManager.fillReport(jr, new HashMap(), dataSource);
      JasperExportManager.exportReportToPdfFile(jasperPrint, "c:/test.pdf");
      JasperViewer.viewReport(jasperPrint);
      
  • but JasperReport show me empty view and also test.pdf is empty .

  • any idea ...?

like image 724
Khaled Lela Avatar asked Mar 15 '26 04:03

Khaled Lela


1 Answers

  • I fixed my problem .
  • The problem because of MyDataSourceProvider fields didn't match ireport.jrxml fields
  • After i fix that problem All thing work good .
like image 108
Khaled Lela Avatar answered Mar 18 '26 05:03

Khaled Lela



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!