簡體   English   中英

報表中的XML數據源不起作用

[英]XML Datasource in report is not working

我想用Java中的XML數據源編譯.JRXML文件。 它可以在iReport中完美運行。 在Java中,它不起作用。

當我將主要查詢語言設置為“ xpath”時,將生成報告,但其中沒有xml數據。

使用'xpath2'作為主要查詢語言時,出現錯誤“沒有為'xpath2'語言注冊工廠查詢執行器”,並且未生成報告。

它甚至無法與您想到的最簡單的報告一起使用。

到目前為止,我已經嘗試過:

  • 在jasperreports.properties中檢查以下行:net.sf.jasperreports.query.executer.factory.xpath2 = com.jaspersoft.jrx.query.JRXPathQueryExecuterFactory
  • 在我的應用程序類路徑中檢查了.jar文件“ jasperreports-extensions-3.5.3.jar”
  • 將此行添加到我的Java代碼中:jasperReport.setProperty(“ net.sf.jasperreports.query.executer.factory.xpath2”,“ com.jaspersoft.jrx.query.JRXPathQueryExecuterFactory”);
  • 在Java中設置XML數據源:org.w3c.dom.Document document = JRXmlUtils.parse(JRLoader.getLocationInputStream(args [2])); params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT,文檔);

我的報告生成代碼:

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構建路徑后,我擺脫了xpath2錯誤。 報告已生成,但沒有數據源。

現在,它可以與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"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM