Как передать несколько параметров в отчеты и экспортировать в PDF в JasperReports из Java - PullRequest
2 голосов
/ 03 января 2012

Я пытаюсь использовать Jasper Reports, чтобы помочь с отчетами в моем приложении.Мне придется отображать свои отчеты в формате HTML (JSP), а также иметь возможность экспортировать отчеты в PDF с моей веб-страницы.
Большинство моих отчетов требуют нескольких параметров, и я не могу понять, какпередать их из моего сервлета (если я должен передать их туда) в отчет.

PS: Я не использую фреймворки любого рода, было бы здорово, если бы вы предложили реализацию без фреймворка.

Ответы [ 3 ]

3 голосов
/ 03 января 2012

вы можете использовать HashMap как

HashMap<String, Object> map = new HashMap<String, Object>();
map.put("parameterName","value");
JasperPrint print = JasperFillManager.fillReport(report,map,con);
2 голосов
/ 11 января 2012
//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/");`
2 голосов
/ 05 января 2012

Этот пример поможет вам, он не требует никаких рамок.Экспортирует отчет в формате PDF.И вы можете использовать карту, как Анил уже объяснил

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);

для передачи нескольких параметров.

...