我公司的一些顾问创建了多个碧玉报告(使用 iReports),这些报告将使用自定义 JRDataSource 以编程方式填充。
问题是我需要知道报告中存在哪些元素,以便我可以调用相应的 WebServices,所以我的问题是:我如何以编程方式,在 Java 中,阅读报告,以便我可以识别需要的每个元素被填满?
报告不能全部以编程方式制作,因为它们的布局会不断变化,而且我们不能在每次发生这种变化时更新我们的软件。
我公司的一些顾问创建了多个碧玉报告(使用 iReports),这些报告将使用自定义 JRDataSource 以编程方式填充。
问题是我需要知道报告中存在哪些元素,以便我可以调用相应的 WebServices,所以我的问题是:我如何以编程方式,在 Java 中,阅读报告,以便我可以识别需要的每个元素被填满?
报告不能全部以编程方式制作,因为它们的布局会不断变化,而且我们不能在每次发生这种变化时更新我们的软件。
由于它是 XML,您当然可以阅读所有内容并解析您的信息。
由于 JasperReports反过来工作,通过 JRDataSource提取数据,而不是结构化数据推送,控制输出,如果您可以拦截数据源会更好。因此,如果您可以从数据源中获取所需的信息,则可以替换数据源(委托给原始数据源),或者进行 AOP。
我不确定您的问题的确切要求。也许编辑你的答案到底是什么问题。
使用以下代码管理获取报告所需的所有元素(字段):
JasperReport report = (JasperReport) JRLoader.loadObjectFromFile(path + "MyTestReport.jasper");
JRField[] gf = report.getFields();