Ein Ereignishandler für den Datenzugriff ermöglicht Ihnen das Arbeiten mit einer Datenquelle oder einem Dataset, wie im Abschnitt 'EGL-BIRT-Handler' beschrieben. Darüber hinaus können Sie, wenn Sie über Zugriff auf einen Parameter des Typs 'ReportContext' verfügen, auf jeden Berichtsparameter zum Zeitpunkt des Aufrufs des Ereignishandlers zugreifen. Sie können beispielsweise für einen Berichtsparameter eine bestimmte Kundennummer festlegen, um anzugeben, für welchen Kunden Daten in den Bericht aufgenommen werden sollen.
function setUser( d DataSourceInstance, c ReportContext )
{ eventType = beforeOpen, elementName = "myDataSource" }
d.setExtensionProperty( "odaUser", userName );
d.setExtensionProperty( "odaPassword", password );
end
In diesem Beispiel wird kein Berichtsparameter verwendet, jedoch der Ereignishandlerparameter d (des Typs 'DataSourceInstance') zum Festlegen einer Benutzer-ID und eines Kennworts, die beide von der BIRT-Berichtsengine verwendet werden, um eine Verbindung zu einer relationalen Datenbank herzustellen. In diesem Beispiel wird davon ausgegangen, dass es sich bei den Variablen userName und password um globale Variablen handelt, die außerhalb der Funktion definiert wurden.
Jeder der Parameter in einem Ereignishandler für den Datenzugriff basiert auf einem externen EGL-Typ, der eine Java™-Schnittstelle darstellt. Die folgende Tabelle enthält den Typ und den Zweck jedes Datenzugriffsparameters sowie den nicht qualifizierten Namen der zugehörigen Java-Schnittstelle.
| Parametertyp | Zweck | Java-Schnittstelle |
|---|---|---|
| DataSetInstance | Zugriff auf allgemeine Details zu einem Dataset | IDataSetInstance |
| DataSetRow | Zugriff auf spaltenspezifische Details zu einem Dataset | IDataSetRow |
| DataSourceInstance | Zugriff auf Details zu einer Datenquelle | IDataSourceInstance |
| ReportContext | Abrufen oder Festlegen von Berichtsparameterwerten | IReportContext |
| UpdatableDatasetRow | Bereitstellen einer Datenzeile für den Bericht | IUpdatableDatasetRow |
Möglicherweise benötigen Sie die Java-spezifischen Details nie, doch das Javadoc, in dem die einzelnen Schnittstellen beschrieben sind, ist im Dokument BIRT Report Scripting API Reference enthalten, das sich im Hilfesystem Ihres Produkts unter BIRT Programmer Reference > Reference > APIReference > BIRT Report Scripting API Reference befindet. Die Java-Schnittstellen 'IDataSourceInstance' und 'IDataSetInstance' befinden sich in 'org.eclipse.birt.report.engine.api.script.instance'; 'DataSetRow', 'UpdatableDatasetRow' und 'ReportContext' befinden sich im Paket 'org.eclipse.birt.report.engine.api.script'.