Ответ 1
Вы можете сделать это несколькими способами.
-
Первый создает два отдельных отчета и объединяет их. В основном вы рисуете каждую страницу, как вы хотите, чтобы она выглядела. При экспорте вы создаете два экземпляра JasperPrint отчета, а затем экспортируете их в пакетном режиме.
public byte[] generateReport(JasperPrint jasperPrint1, JasperPrint jasperPrint2) { //throw the JasperPrint Objects in a list List<JasperPrint> jasperPrintList = new ArrayList<JasperPrint>(); jasperPrintList,add(jasperPrint1); jasperPrintList,add(jasperPrint2); ByteArrayOutputStream baos = new ByteArrayOutputStream(); JRPdfExporter exporter = new JRPdfExporter(); //Add the list as a Parameter exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList); //this will make a bookmark in the exported PDF for each of the reports exporter.setParameter(JRPdfExporterParameter.IS_CREATING_BATCH_MODE_BOOKMARKS, Boolean.TRUE); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos); exporter.exportReport(); return baos.toByteArray(); }
-
Второй вариант - это маршрут Subreport. В основном вы создаете первую страницу отчета. Затем вы создаете вторую страницу отчета. Затем в iReport вы можете добавить подчиненный отчет в Сводный список, передавая любую необходимую информацию, которую он должен выполнить (например, соединение с базой данных, источник данных, параметры и т.д.). В свойствах для общего отчета вы захотите убедиться, что
Summary on new page
выбран так, что подрегистр будет печатать на своей собственной странице.