要将多个JRXML添加到一个报表/ PDF中,可以按照以下提到的方式进行:
考虑下面的方法来生成带有2个JRXML的PDF报告,这些报告已添加到“ jrxmlFileNames”列表中
public static void reportGenerator(String reportType, List<String> jrxmlFileNames, Datasource dataSource , String SwapFile){ JRConcurrentSwapFile swapFile = new JRConcurrentSwapFile(SwapFile, 102400 , 10); JRAbstractLRUVirtualizer virtualizer = new JRSwapFileVirtualizer(1000, swapFile, true); Map<String, JRAbstractLRUVirtualizer> parameters = new HashMap<String, JRAbstractLRUVirtualizer>(); parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); try { if (reportType.equalsIgnoreCase("PDF")) { try { JasperReport jreport1 = JasperCompileManager.compileReport(ReportGenerator.class.getResourceAsStream(jrxmlFileNames.get(0))); JasperPrint jprint1 = JasperFillManager.fillReport(jreport1, parameters, new JRBeanCollectionDataSource(dataSource.getDataSourceFor1())); JasperReport jreport2 = JasperCompileManager.compileReport(ReportGenerator.class.getResourceAsStream(jrxmlFileNames.get(1))); JasperPrint jprint2 = JasperFillManager.fillReport(jreport2, parameters, new JRBeanCollectionDataSource(dataSource.getDataSourceFor2())); List<JasperPrint> jprintlist = new ArrayList<JasperPrint>(); jprintlist.add(jprint1); jprintlist.add(jprint2); String fileName="TESTReport.pdf"; JRExporter exporter = new JRPdfExporter(); exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist); exporter.setParameter(JRPdfExporterParameter.OUTPUT_FILE_NAME, fileName); exporter.exportReport(); } catch(Exception e) { e.printStackTrace(); } } swapFile.dispose(); } catch(Exception e) { e.printStackTrace(); }}在上面的代码中,以下部分将帮助您添加多个JRXML。
List<JasperPrint> jprintlist = new ArrayList<JasperPrint>(); jprintlist.add(jprint1); jprintlist.add(jprint2); JRExporter exporter = new JRPdfExporter(); exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);
希望能帮助到你!



