I want to make list object as my data source, can you tell me for .jrxml
file how should i design my report ?
public class TestReport
{
public void runReport(String fileName, String outFileName)
{
try
{
List<R> list = new ArrayList<R>(5);
Map parameters = new HashMap();
list.add(new R("a1" ,"a2"));
list.add(new R("b1" ,"b2"));
list.add(new R("c1" ,"c2"));
/*parameters.put("my_name", "faisal khan");
parameters.put("my_addr", "address comes here");*/
JasperPrint print = JasperFillManager.fillReport( fileName, parameters, new JREmptyDataSource());
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(
JRExporterParameter.OUTPUT_FILE_NAME,outFileName);
exporter.setParameter(
JRExporterParameter.JASPER_PRINT, print);
JasperExportManager.exportReportToPdfFile(print, outFileName);
print = null;
exporter = null;
} catch (Exception e) {
e.printStackTrace();
}
}
private class R{
private String name;
private String addr;
public R(String name, String addr) {
super();
this.name = name;
this.addr = addr;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
public static void main(String args[]){
new TestReport().runReport("/home/faisalloe/ireports/report1.jasper", "/home/faisalloe/ireports/report1.pdf");
}
}
Datasources are structured data container. While generating the report, JasperReports engine obtains data from the datasources. Data can be obtained from the databases, XML files, arrays of objects, and collection of objects.
JasperReports is an open source Java reporting tool that can write to a variety of targets, such as: screen, a printer, into PDF, HTML, Microsoft Excel, RTF, ODT, comma-separated values (CSV) or XML files.
Make use of the JasperDatasource for collections: net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
JasperPrint print = JasperFillManager.fillReport( fileName, parameters, new JRBeanCollectionDataSource(list));
Your report will repeat once for each element. Or you can define a subreport depending the main report, wich is to be repeated once per list element.
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