【问题标题】:Read jasper report programmatically以编程方式阅读 jasper 报告
【发布时间】:2012-05-03 12:33:34
【问题描述】:
我公司的一些顾问创建了多个 jasper 报告(使用 iReports),这些报告将使用自定义 JRDataSource 以编程方式填充。
问题是我需要知道报告中存在哪些元素,以便我可以调用相应的 WebServices,所以我的问题是:我如何以编程方式在 Java 中阅读报告,以便我可以确定需要填充的每个元素?
报告不能全部以编程方式生成,因为它们的布局会不断变化,而且我们不能在每次发生这种变化时都更新我们的软件。
【问题讨论】:
标签:
java
jasper-reports
reporting
【解决方案1】:
因为它是 XML,您当然可以阅读所有内容并解析您的信息。
由于 JasperReports 以相反的方式工作,通过 JRDataSource 拉 数据,而不是结构化数据 推送,控制输出,如果您能拦截数据源。所以如果你能从数据源中得到需要的信息,你可以替换数据源(委托给原来的),或者做AOP。
我不确定你的问题的确切要求。也许编辑你的答案到底是什么问题。
【解决方案2】:
通过使用以下代码设法获取报告所需的所有元素(字段):
JasperReport report = (JasperReport) JRLoader.loadObjectFromFile(path + "MyTestReport.jasper");
JRField[] gf = report.getFields();