How to insert two pages in report

前端 未结 3 519
逝去的感伤
逝去的感伤 2021-01-15 05:11

I´m facing one problem, I have two jrmxl files. I want to join then in one pdf file, but each in one page.

I saw some tips below but I don

相关标签:
3条回答
  • 2021-01-15 05:33

    To get two pages in report you can use Report group and delete all other bands like detail, summary.

    To add report group :-

    1:- Open report and in Report inspector right click and select "Add Report Group".

    2:- Give any name and choose "Group by the following expression" radio button and leave the expression blank and then Next, select only Report header and then finish.

    3:- Now for the second page you can add one more Report Group in the same way.

    0 讨论(0)
  • 2021-01-15 05:51

    To add multiple JRXMLs in one report/PDF, you can follow the below mentioned way:

    Consider the method below to generate a PDF report with 2 JRXMLs which have added in the "jrxmlFileNames" list

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

    In the above code the following part will help you adding the multiple JRXMLs

        List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();    
        jprintlist.add(jprint1);
        jprintlist.add(jprint2);
        JRExporter exporter = new JRPdfExporter();   
    exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);
    

    Hope it helps!

    0 讨论(0)
  • 2021-01-15 05:55

    Here there is a similar question: How do i add a second page on Jaspersoft iReport designer. There is also a simpler way: Put a Page Break component on your Detail Band, which means, drag and drop a 'Break' component, and on the popUp that will get displayed select "Page Break"

    0 讨论(0)
提交回复
热议问题