贾斯珀报告中的子报告 [英] Subreports in Jasper Reports

查看:99
本文介绍了贾斯珀报告中的子报告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两张桌子要打印在同一页面上。这些表的数据将从自定义数据源的地图中提供。我需要实现它。我用Google搜索实现此任务。

I have two tables to be printed in same page. Data for those tables will be supplied from a map from a custom data source. I need to implement it. I googled for implementing this task.

那时我遇到了子报告的概念,但我没有得到很多关于如何实施子报告的信息。

At that time I came across sub-reports concept, but I didn't get much info for how to implement sub-reports.

我知道如何创建子报告。但我不知道如何使用customdatasource填充子报告。那是我的问题。请帮助我实现这一目标。

I have an idea of how to create sub-reports. But I don't know how to fill sub reports with customdatasource. That's my question. Please help me in achieving this.

注意:我试图实现子报告,但是我收到了一个错误。这是我用于编译子报告的代码:

Note: I tried to implement subreports, but I am getting an error. Here is the code I used for compiling subreports:

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 并将它们添加为地图中的参数。然后我通过masterreports填充它时出错。请帮我编译报告。

Here I have compiled subreport1 & subreport2 individually and added them as a parameter in map. Then I'm getting an error while filling it through masterreports. Please help me to compile the report.

编译器错误的堆栈跟踪:

Stack trace of the compiler error:


线程main中的异常net.sf.jasperreports.engine.JRRuntimeException:未知的打印订单0.
at net.sf.jasperreports.engine.fill.JRFillSubreport.initSubreportFiller(Unknown Source)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(Unknown Source)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(Unknown Source)
at net.sf.jasperreports。 engine.fill.JRFillElementContainer.evaluate(未知来源)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(未知来源)
at net.sf.jasperreports.engine.fill.JRVerticalFiller。 fillColumnBand(Unknown Source)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(Unknown Source)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(Unknown Source)
在net.sf.jasperrep orts.engine.fill.JRVerticalFiller.fillReport(未知来源)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(未知来源)
at net.sf.jasperreports.engine.fill。 JRBaseFiller.fill(未知来源)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(未知来源)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(Unknown Source)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(未知来源)
at ReportTableCompiler.main(ReportTableCompiler.java:53)

Exception in thread "main" net.sf.jasperreports.engine.JRRuntimeException: Unkown print order 0. at net.sf.jasperreports.engine.fill.JRFillSubreport.initSubreportFiller(Unknown Source) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(Unknown Source) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(Unknown Source) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(Unknown Source) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(Unknown Source) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(Unknown Source) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(Unknown Source) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(Unknown Source) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(Unknown Source) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(Unknown Source) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(Unknown Source) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(Unknown Source) at net.sf.jasperreports.engine.JasperFillManager.fillReport(Unknown Source) at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(Unknown Source) at ReportTableCompiler.main(ReportTableCompiler.java:53)


推荐答案

我发布了类似问题的答案。你可以在这里查看答案。

I posted the answer for the similar question. You can check the answer here.

使用iReport和eclipse批准生成报告

这篇关于贾斯珀报告中的子报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆