如何将多个参数传递到报表并从Java导出到JasperReports中的PDF

时间:2012-01-03 07:36:55

标签: java jsp servlets jasper-reports ireport

我正在尝试使用Jasper Reports来帮助我的应用程序进行报告。我将不得不在HTML(JSP)中显示我的报告,还需要能够从我的网页中将报告导出为PDF。 我的大多数报告都需要多个参数,我无法弄清楚如何将它们从我的Servlet传递(如果我必须将它们传递给报告)。

P.S:我没有使用任何类型的框架,如果你能建议一个免费的框架,那就太好了。

2 个答案:

答案 0 :(得分:3)

你可以使用像

这样的HashMap
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("parameterName","value");
JasperPrint print = JasperFillManager.fillReport(report,map,con);

答案 1 :(得分:2)

//Preparing data - change this as per your requirement
List<DataDTO> dataDTOList = new ArrayList<DataDTO>();
DataDTO dataDTO = new DataDTO; 
dataDTO.setFirstName("FirstName"); // in your Jasper field name is 'firstName' as type String
dataDTO.setLastName("LastName"); // in your Jasper field name is 'lastName' as type String
dataDTOList.add(dataDTO);

// Adding data
JRDataSource jrdatasource = new JRBeanCollectionDataSource(dataDTOList);

// Exporting report
File jasperFile = new File("C:/YourReport.jasper"); // change this
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(new FileInputStream(jasperFile.getAbsolutePath()));             
Map parameters = new HashMap();
JRConcurrentSwapFile jrSwapFile = new JRConcurrentSwapFile("C:/PDFOutput/"),30,2);
JRSwapFileVirtualizer virtualizer = new JRSwapFileVirtualizer(2,jrSwapFile,true);
parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
JasperPrint jpPrintObj = JasperFillManager.fillReport(jasperReport,parameters,jrdatasource);
JasperExportManager.exportReportToPdfFile(jpPrintObj,"C:/PDFOutput/");`