我想用Java编译带有XML数据源的.JRXML文件。它在 iReport 中完美运行。在Java中,它不起作用。
当我将主查询语言设置为'xpath'时,会生成报告,但其中没有xml数据。
以'xpath2'作为主要查询语言,我收到错误“没有为'xpath2'语言注册的查询执行器工厂”并且没有生成报告。
它甚至不能用你能想到的最简单的报告。
到目前为止我尝试了什么:
我的报告生成代码:
JasperReport jasperReport = JasperCompileManager.compileReport(args[0]);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(jasperPrint, args[1]);
将jasper-compiler-jdt-5.5.23.jar添加到我的Java Build Path之后,我摆脱了xpath2错误。生成报告,但没有数据源。
答案 0 :(得分:0)
现在可以使用xpath数据源。我在Java应用程序中创建了数据源,而不是传递XML_URL。这不是完美的,而是一个很好的解决方法。这是我使用的代码:
org.w3c.dom.Document document = JRXmlUtils.parse(JRLoader.getLocationInputStream("/file/location.xml"));
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JRXmlDataSource(document, "/xpath"));