У меня есть две таблицы для печати на одной странице.Данные для этих таблиц будут предоставляться с карты из пользовательского источника данных.Мне нужно это реализовать.Я погуглил для реализации этой задачи.
В то время я сталкивался с концепцией подотчетов, но у меня не было много информации о том, как реализовать подотчеты.
У меня есть представление о том, как создавать подотчеты,Но я не знаю, как заполнять подотчеты с помощью customdatasource.Это мой вопрос.Пожалуйста, помогите мне в достижении этого.
Примечание. Я пытался реализовать вложенные отчеты, но получаю сообщение об ошибке.Вот код, который я использовал для составления подотчетов:
JasperPrint print = new JasperPrint();
JRPdfExporter exporter = new JRPdfExporter();
JasperDesign design, design1;
JasperReport report, report1;
JasperReport jasperReport;
JasperDesign jd1;
jd1 = JRXmlLoader.load("D:\\sub_report1.jrxml");
jasperReport = JasperCompileManager.compileReport(jd1);
Map parameters = new HashMap();
parameters.put("ReportTitle", "Table Report");
parameters.put("DataFile", "TableSource.java");
parameters.put("Subreport_1", jasperReport);
design = JRXmlLoader.load("D:\\sub_report2.jrxml");
report = JasperCompileManager.compileReport(design);
parameters.put("Subreport_2", report);
design1 = JRXmlLoader.load("D:\\master_report.jrxml");
report1 = JasperCompileManager.compileReport(design1);
JasperFillManager.fillReportToFile(report1, "D:\\master_report.jrprint", parameters, new TableDataSource());
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "D:K\\Report.pdf");
exporter.exportReport();
JasperViewer.viewReport(print);
Здесь я скомпилировал subreport1
& subreport2
по отдельности и добавил их в качестве параметра в карту.Тогда я получаю сообщение об ошибке при заполнении через мастер-отчеты.Помогите мне скомпилировать отчет.
Трассировка стека ошибки компилятора:
Исключение в потоке "main" net.sf.jasperreports.engine.JRRuntimeException: неизвестный порядок печати 0в net.sf.jasperreports.engine.fill.JRFillSubreport.initSubreportFiller (неизвестный источник) в net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport (неизвестный источник) в net.sf.jasperreports.engine.fill.JF.оценить (неизвестный источник) по адресу net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate (неизвестный источник) по адресу net.sf.jasperreports.engine.fill.JRFillBand.evaluate (неизвестный источник) по адресу net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand (Неизвестный источник) в net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail (Неизвестный источник) в net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart (Неизвестный источник) в net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport (неизвестный источник) по адресу net.sf.jasperreports.engine.fill.JRBaseFiller.fill (неизвестный Source) в net.sf.jasperreports.engine.fill.JRBaseFiller.fill (неизвестный источник) в net.sf.jasperreports.engine.fill.JRFiller.fillReport (неизвестный источник) в net.sf.jasperreports.engine.JasperFillManager.fillReport(Неизвестный источник) в net.sf.jasperreports.engine.JasperFillManager.fillReportToFile (Неизвестный источник) в ReportTableCompiler.main (ReportTableCompiler.java:53)