2011-01-05 17 views
0

Der BIRT-Bericht kann die maximale Zeilenabrufgröße eines jdbc-Datasets innerhalb der Dataset-Einstellungen begrenzen. Dies ist eine manuell eingegebene Ganzzahl. Ich suche nach einer Möglichkeit, diese dynamisch von einem ReportParameter an die jdbc -Datei zu übergeben, um die abgerufenen Zeilen zu begrenzen.BIRT jdbc-Datensatz. dynamic max row fetch

Ich bevorzuge dies z.B. im beforeOpen() - Hook mit JavaScript, da das Setzen des Limits direkt in SQL DBMS-spezifisch ist und ich möchte, dass der Report auf mehreren DBMS (Oracle, MySQL, DB2, Sybase, ...) läuft

Antwort

2

In den beforeFactory() hook :

reportContext.getReportRunnable().designHandle.getDesignHandle().findDataSet("Data Set").setRowFetchLimit(params["my_limit"].value); 

Allgemeinen viel beforeFactory() Sachen beginnt mit reportContext.getReportRunnable().designHandle.getDesignHandle(). Sie können hier ein beliebiges Berichtselement finden oder sogar alle Elemente durchlaufen.

Wenn Sie find() Element, gibt es nicht alle Methoden in einer Strg + Leerzeichen-Hilfe aufgeführt. Mehr enthalten Eclipse Help: BIRT Programmer Referenz -> Referenz -> API-Referenz -> Bericht Objektmodell API-Referenz. Klasse Modul Griff ist ein guter Anfang.

Ich bin mir nicht sicher, ob es eine kürzere Punktkette für den Zugriff auf das Berichtsdesign gibt. Wenn ja, korrigiere mich bitte.

+0

+1 nahm mich eine Weile, um zu verstehen und zu integrieren, dies in meinem Bericht. Funktioniert perfekt! –

+0

reportcontext.getDesignHandle() sollte so gut funktionieren wie Zugwrack oben – jinowolski