2010-01-07 7 views
5

Ich habe JRQueryExecuter implementiert und möchte es in einem Bericht verwenden. Mit iReport konnte ich mich registrieren und den Executer verwenden.Wie Sie eine QueryExecuterFactory in Jaspis-Berichten in Java registrieren

Jetzt möchte ich es in einer Java-Anwendung verwenden, aber ich kann keine Ressourcen finden, wie Sie die Fabrik registrieren.

Ich dachte, es ist genug, um die Umsetzung in dem Classpath zu haben, aber ich bekomme die folgende Ausnahme:

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) 

Kann mir jemand einen Tipp geben?

Grüße Hannes

Antwort

1

Die Dokumentation schlägt vor, eine Eigenschaft zu setzen:

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

funktioniert das?

3

Mit Jasper 5.2.0, müssen Sie:

  1. Erstellen einer benutzerdefinierten YourCustomExecuterFactory Implementierung QueryExecuterFactory Klasse.
  2. Machen Sie Ihre neue YourCustomExecuterFactory Ihre Implementieren von benutzerdefinierten JRQueryExecuter verwenden Methode QueryExecuterFactory.createQueryExecuter(..)
  3. die neue Sprache Karte (tmql?) Zu Ihrer benutzerdefinierten Fabrik. In Ihrem jasperresports.properties stellen Sie diese Eigenschaft: net.sf.jasperreports.query.executer.factory.tmql=your.package.YourCustomExecuterFactory

Hoffen, dass dies jemand hilft.

1

Legen Sie die Eigenschaft fest, bevor JasperCompileManager aufgerufen wird.

Beispiel unter Verwendung von plsql Abfragesprache:

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