2009-03-30 14 views
0

Gibt es eine einfache Möglichkeit, auf die Datensätze eines BIRT-Berichts zuzugreifen, um einige Filter hinzuzufügen/zu ändern. Ich weiß, dass ich gerade die XML (rptdesign) Datei ändern kann, aber ich hoffe auf eine Java-Methode oder etwas. Ich werde übrigens über PHP-Java Bridge darauf zugreifen, weil mein Front-End auf PHP basiert.Dynamische BIRT-Filter zur Laufzeit

Antwort

0

Ich bin mir nicht sicher, was Sie mit "Filter" meinen, aber Sie können BIR-Berichte erstellen, die Berichtsparameter annehmen, die Sie weitergeben können. z.B. Übergeben Sie einen Benutzer (xxx) Name, um einen Bericht mit einer Abfrage anzuzeigen, die auf den angegebenen Benutzer zugeschnitten ist (alias SQL WHERE Benutzer == xxx)

1

Ok ich will nur nicht, dass dies unbeantwortet bleibt.

Die Lösung besteht darin, auf das Designelement zuzugreifen, dann auf das Dataset und dann Filterbedingungen von dort hinzuzufügen.

$report = $birtReportEngine->openReportDesign("${here}/myreport.rptdesign"); 
$filter = new java("org.eclipse.birt.report.model.api.elements.structures.FilterCondition"); // create a new filter condition object 

$filter->setExpr("row['id']"); 

$filter->setOperator("in"); 
$filter->setValue1('["32","679","333","233"]'); 
$report->getDesignHandle()->findDataSet("Employees")->addFilter($filter);