I'm new in iReport and I have to create a PDF report.
With a JavaBean DataSource you wrap an array (or collection) of JavaBeans but I only need to pass an object (only one instance of a JavaBean). I mean, I have to show in my report the properties of a java bean.
How can I do this? I'm a little bit confused, I have to pass an array with only one item?
jasper. properties is looked up by jasper reports in the classpath, so it can be directly in the WEB-INF/classes folder, or in the root folder of any of the jars in WEB-INF/lib.
jrxml is a human readable XML file that contains the report template i.e. report structure and its formatting rules. . jasper is the compiled report template i.e. compiled . jrxml file.
You can pass your bean to the report using a JRBeanArrayDataSource or JRBeanCollectionDataSource or you can use the parameters Map.
JasperPrint reportPrint = JasperFillManager.fillReport(
this.getClass().getClassLoader().getResourceAsStream("/report.jasper"),
new HashMap<String,Object>(),
new JRBeanArrayDataSource(new YourBean[]{yourBean}));
or
Map<String,Object> params = new HashMap<String,Object>();
params.put("yourBean", yourBean);
JasperPrint reportPrint = JasperFillManager.fillReport(
this.getClass().getClassLoader().getResourceAsStream("/report.jasper"),
params, new JREmptyDataSource());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With