如何将多个参数传递到报表并从Java导出到JasperReports中的PDF
我正在尝试使用Jasper Reports来帮助我在应用程序中进行报告。我必须以HTML(JSP)格式显示我的报告,还需要能够从我的网页中将报告导出为PDF格式。如何将多个参数传递到报表并从Java导出到JasperReports中的PDF,java,jsp,servlets,jasper-reports,ireport,Java,Jsp,Servlets,Jasper Reports,Ireport,我正在尝试使用Jasper Reports来帮助我在应用程序中进行报告。我必须以HTML(JSP)格式显示我的报告,还需要能够从我的网页中将报告导出为PDF格式。 我的大多数报告都需要多个参数,我不知道如何将它们从Servlet(如果我必须将它们传递到Servlet)传递到报告 附言:我不使用任何类型的框架,如果你能建议一个无框架的实现,那就太好了。你可以像这样使用HashMap HashMap<String, Object> map = new HashMap<String,
我的大多数报告都需要多个参数,我不知道如何将它们从Servlet(如果我必须将它们传递到Servlet)传递到报告
附言:我不使用任何类型的框架,如果你能建议一个无框架的实现,那就太好了。你可以像这样使用HashMap
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("parameterName","value");
JasperPrint print = JasperFillManager.fillReport(report,map,con);
HashMap map=newhashmap();
map.put(“参数名”、“值”);
JasperPrint print=JasperFillManager.fillReport(报告、地图、图标);
将帮助您,它不需要任何框架。它将报告导出为PDF格式。你们可以用Anil已经解释过的地图
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("parameterName","value");
map.put("parameterName2","value2");
map.put("parameterName3","value3");
JasperPrint print = JasperFillManager.fillReport(report,map,con);
HashMap map=newhashmap();
map.put(“参数名”、“值”);
映射放置(“参数名称2”、“值2”);
映射放置(“参数名称3”、“值3”);
JasperPrint print=JasperFillManager.fillReport(报告、地图、图标);
传递多个参数。//准备数据-根据需要更改此选项
//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/");`
List dataDTOList=new ArrayList();
DataDTO DataDTO=新的DataDTO;
dataDTO.setFirstName(“FirstName”);//在Jasper字段中,名称是'firstName'作为类型字符串
dataDTO.setLastName(“LastName”);//在Jasper字段中,名称是'lastName'作为类型字符串
dataDTOList.add(dataDTO);
//添加数据
JRDataSource JRDataSource=新的JRBeanCollectionDataSource(dataDTOList);
//导出报告
File jasperFile=新文件(“C:/YourReport.jasper”);//改变这个
JasperReport JasperReport=(JasperReport)JRLoader.loadObject(新文件输入流(jasperpile.getAbsolutePath());
映射参数=新的HashMap();
JRConcurrentSwapFile jrSwapFile=新的JRConcurrentSwapFile(“C:/PDFOutput/”),30,2);
JRSwapFileVirtualizer virtualizer=新的JRSwapFileVirtualizer(2,jrSwapFile,true);
parameters.put(jrparmeter.REPORT\u VIRTUALIZER,VIRTUALIZER);
JasperPrint jpPrintObj=JasperFillManager.fillReport(jasperReport,参数,jrdatasource);
JasperExportManager.exportReportToPdfFile(jpPrintObj,“C:/PDFOutput/”)`
这有什么帮助?对不起,我对Jasperreport这件事有点陌生。我不知道是谁投的票,但它没有回答我的问题。HashMap paramMap=new HashMap();paramMap.put(“parameterName”、“value”);bytes[]byteStream=JasperRunManager.runReportToPdf(“myJasperReport.jasper”,paramMap,databaseConn);OutputStream outStream=servletResponse.getOutputStream();setHeader(“内容处置”,“内联,文件名=myReport.pdf”);response.setContentType(“application/pdf”);response.setContentLength(byteStream.length);扩展流。写入(字节,0,字节。长度)代码>它可能会帮助您。我将使用上述两种解决方案。@Piotr Nowicki,谢谢您的编辑!:)您的链接似乎已失效