Frage

Ich habe mehr BIRT-Berichte, die die Daten aus der gleichen JDBC-Datenquelle erhalten.

Ist es möglich, die conection Parameter (Treiber-URL, Benutzername und Passwort) von einer externen Eigenschaftsdatei oder ähnlichem zu erhalten?

War es hilfreich?

Lösung

Ein Sie eine funktionale Datenquelle zu erstellen, können Sie diese Datenquelle zu einem Bericht Bibliothek hinzufügen, die importiert und verwendet von allen BIRT-Berichte in Ihrem System werden kann. Die Quelle in der Bibliothek kann statische Verbindung Attribute haben, oder Sie können abstrahieren externalisiert Eigenschaften verwendet wird.

Wenn Sie die Verbindungsinformationen externalisieren wollen, müssen Sie die Datenquelle selbst zwicken. Innerhalb des Datenquellen-Editor gibt es eine „Property Binding“ Abschnitt, den Sie abstrakt alle Werte Regeln für die Datenverbindung ermöglicht. Von dort aus können Sie die Werte binden (den Ausdruck-Editor) entweder Berichtsparameter oder eine Properties-Datei.

Zur Bindung an einen Berichtsparameter, verwenden Sie folgende Syntax: params[parametername].value als Ausdruck

.

Um bindet an eine Properties-Datei, die Ressourcendatei in dem Top-Level-Eigenschaften Bericht festgelegt. Von dort können Sie nur die Eigenschaft Schlüsselwert verwenden den Eintrag in die Datenquelle zu binden.

Good Luck!

Andere Tipps

Eine Alternative zum guten @ Mystik des "Property Bindung" Lösung ist mit einem Verbindungsprofil Externalisierung .

  • Erstellen Sie eine Datenquelle (sagen "DS"), Einstellung eine korrekte Konfiguration der Parameter bis zu einem DB zu verbinden.
  • Rechtsklick auf „DS“> Externalize auf Verbindungsprofil ...> beiden Optionen aktiviert, einen Namen für das Verbindungsprofil eingestellt, Ok>, um den Pfad und Dateinamen festgelegt waren, die Verbindung Profilspeicher speichern (sagen "reportName.cps"), deaktivieren Sie verschlüsseln ... (auf diese Weise wir Informationen in der XML-Datei von Hand ändern können).

Jetzt haben „reportName.cps“ wir, eine XML-Datei, die wir entsprechend die Umgebung ändern können, wo wir unseren Bericht (Entwicklung, Produktion, ...) statt. Das Problem ist, dass „DS“ hat statisch jene Informationen von „reportName.cps“ geladen. Er lädt sie dinamically wenn es „reportName.cps“ im absoluten Pfad finden wir angegeben. So verändernden Umfeld wird der Dateipfad unterschiedlich sein und der Bericht wird nicht unsere Datei. der Bericht den richtigen Speicherort der Datei zu sagen, und es dynamisch lassen Sie uns ein Skript schreiben, laden:

  • Setup ein Before Skript , um das Verbindungsprofil verwenden, die in der Ressource-Ordner bereitgestellt wird, die für jede Umgebung unterschiedlich sein können:

    var myresourcefolder = reportContext.getDesignHandle().getResourceFolder();
    this.setExtensionProperty("OdaConnProfileStorePath", myresourcefolder + "/reportName.cps");
    
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top