我正在尝试使用Jasper Reports来帮助我的应用程序进行报告。我将不得不在HTML(JSP)中显示我的报告,还需要能够从我的网页中将报告导出为PDF。 我的大多数报告都需要多个参数,我无法弄清楚如何将它们从我的Servlet传递(如果我必须将它们传递给报告)。
P.S:我没有使用任何类型的框架,如果你能建议一个免费的框架,那就太好了。
答案 0 :(得分:3)
你可以使用像
这样的HashMapHashMap<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/");`