2012-05-03 120 views
0

我公司的一些顾问创建了多个jasper报告(使用iReports),这些报告将使用自定义JRDataSource以编程方式填充。以编程方式阅读jasper报告

问题是我需要知道哪些元素出现在报表中,以便我可以调用相应的WebServices,所以我的问题是:如何以编程方式使用Java读取报表以便我可以识别每个需要填充的元素?

报告不能以编程方式编制,因为布局会有不断变化,并且每次发生这种变化时我们都无法更新我们的软件。

回答

2

设法让报表所需使用下面的代码的所有元素(场):

JasperReport report = (JasperReport) JRLoader.loadObjectFromFile(path + "MyTestReport.jasper"); 
JRField[] gf = report.getFields(); 
2

因为它是XML,您当然可以阅读并解析您的信息。

由于JasperReports的工作倒过来,通过的JRDataSource拉数据,而不是结构化数据,控制输出,它会更好,如果你能拦截的数据源。因此,如果您可以从数据源获取所需的信息,则可以替换数据源(委托给原始数据源)或执行AOP。

我不确定您的问题的具体要求。也许编辑你的答案究竟是什么问题。