簡體   English   中英

如何在 java 中的 jasper 報告中注冊 QueryExecuterFactory

[英]How to register a QueryExecuterFactory in jasper reports in java

我實現了 JRQueryExecuter 並想在報告中使用它。 使用 iReport 我設法注冊並使用了執行器。

現在我想在java應用程序中使用它,但是我找不到任何資源如何注冊工廠。

我認為在類路徑中實現就足夠了,但是我得到了以下異常:

Caused by: net.sf.jasperreports.engine.JRException: No query executer factory class registered for tmql queries.
at net.sf.jasperreports.engine.query.DefaultQueryExecuterFactoryBundle.getQueryExecuterFactory(DefaultQueryExecuterFactoryBundle.java:80)
at net.sf.jasperreports.engine.util.JRQueryExecuterUtils.getQueryExecuterFactory(JRQueryExecuterUtils.java:57)
at net.sf.jasperreports.engine.design.JRDesignDataset.queryLanguageChanged(JRDesignDataset.java:1006)

任何人都可以給我一個提示嗎?

關於漢內斯

使用 jasperreports 5.2.0,您需要:

  1. 創建一個自定義YourCustomExecuterFactory實現QueryExecuterFactory類。
  2. 讓您的新YourCustomExecuterFactory使用您的自定義JRQueryExecuter實現方法QueryExecuterFactory.createQueryExecuter(..)
  3. 將新語言 (tmql?) 映射到您的自定義工廠。 在您的jasperresports.properties中設置此屬性: net.sf.jasperreports.query.executer.factory.tmql=your.package.YourCustomExecuterFactory

希望這對某人有所幫助。

該文檔建議設置一個屬性:

JasperReport jasperReport = <...>
jasperReport.setProperty(JRQueryExecuterFactory.QUERY_EXECUTER_FACTORY_PREFIX + "<query language>", "<value>");

那樣有用嗎?

在調用 JasperCompileManager 之前設置屬性。

下面使用 plsql 查詢語言的示例:

JRProperties.setProperty(QueryExecuterFactory.QUERY_EXECUTER_FACTORY_PREFIX+"plsql"
                            ,"com.jaspersoft.jrx.query.PlSqlQueryExecuterFactory");
JasperReport jasperReport =
            JasperCompileManager.compileReport(sourceFile);

暫無
暫無

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

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