Ein Berichtstreiberprogramm ist ein übliches EGL-Programm, das mithilfe einer '.jasper'-Datei einen Bericht ausführt, der aus einer Berichtsdesigndatei kompiliert wird.
program reportDriverProgram type BasicProgram
function main()
SQLLib.defineDatabaseAlias("customer",
"jdbc:derby:C:\\databases\\CustomerDatabase");
SQLLib.connect("customer", "admin", "admin");
myReport Report = new Report();
myReportData ReportData = new ReportData();
myReport.reportDesignFile =
"C:\\Workspace\\MyProject\\bin\\reportModel.jasper";
myReport.reportDestinationFile = "C:\\temp.jrprint";
myReport.reportExportFile = "C:\\MyReport.pdf";
myReportData.connectionName = "customer";
myReportData.sqlStatement =
"select * from EGL.CUSTOMER order by CUSTOMER_ID desc";
myReport.reportData = myReportData;
reportLib.fillReport(myReport, DataSource.sqlStatement);
reportLib.exportReport(myReport, ExportFormat.pdf);
end
end
Wenn in Escapezeichenfolgen das Backslash-Zeichen (\) verwendet wird, müssen Sie in Pfadnamen einen doppelten Backslash verwenden.
| Code | Erläuterung |
|---|---|
|
Stellt eine Verbindung zu einer Datenbank bereit und definiert einen Aliasnamen für die Datenbank mithilfe von Funktionen in der EGL-Bibliothek 'SQLLib'. |
|
Erstellt eine neue Berichtsvariable für die Darstellung des Berichts. |
|
Erstellt eine neue Berichtsdatenvariable für die Darstellung der Daten im Bericht. |
|
Legt die Position der '.jasper'-Datei fest, die aus der Berichtsdesigndatei kompiliert wird. |
|
Legt die Position einer temporären Datei fest, die während der Verarbeitung des Berichts verwendet wird. |
|
Legt die Position des exportierten Berichts fest. |
|
Legt die Datenbankverbindung, die der Bericht verwendet, durch den zuvor definierten Datenbankaliasnamen fest. |
|
Legt die Datenbankzugriffsanweisung fest, die Daten für den Bericht bereitstellt. |
|
Ordnet die Berichtsvariable der Berichtsdatenvariable zu. |
|
Füllt den Bericht mit Daten. |
|
Führt den Bericht aus und exportiert ihn. |
Record myRecord type BasicRecord
author String;
description String;
title String;
end
//Variablendeklarationen
myReport Report = new Report();
myReportData ReportData = new ReportData();
recArray myRecord[];
recArrayElement myRecord;
//Funktion, die den Code für das Ausführen des Berichts enthält
function makeReport()
//Initialisieren der Positionen für die Berichtsdatei
myReport.reportDesignFile =
"c:\\workspace\\report_project\\" ::
"bin\\report_package\\myReport.jasper";
myReport.reportDestinationFile =
"c:\\temp\\myReport.jrprint";
//Abrufen der Berichtsdaten
populateReportData();
myReport.reportData = myReportData;
//Füllen des Berichts mit Daten
reportLib.fillReport(myReport, DataSource.reportData);
//Exportieren des Berichts im Format HTML
myReport.reportExportFile = "c:\\temp\\myReport.html";
reportLib.exportReport(myReport, ExportFormat.html);
end
function populateReportData()
recArrayElement.author="Jane Austen";
recArrayElement.title="Northanger Abbey";
recArrayElement.description = "British Novel";
recArray.appendElement(recArrayElement);
recArrayElement.author = "Jane Austen";
recArrayElement.title="Emma";
recArrayElement.description = "British Novel";
recArray.appendElement(recArrayElement);
recArrayElement.author = "Charles Dickens";
recArrayElement.title="Our Mutual Friend";
recArrayElement.description = "British Novel";
recArray.appendElement(recArrayElement);
recArrayElement.author = "Gustave Flaubert";
recArrayElement.title="Madame Bovary";
recArrayElement.description = "French Novel";
recArray.appendElement(recArrayElement);
recArrayElement.author = "M. Lermontov";
recArrayElement.title="Hero of Our Time";
recArrayElement.description = "Russian Novel";
recArray.appendElement(recArrayElement);
end
JasperReports speichert mit Daten gefüllte Berichte als temporäre Zieldatei (Erweiterung '.jrprint'), aus denen von JasperReports mehrere Exportdateien erstellt werden können. Sie können mit Daten gefüllte Berichte im Format PDF, HTML, XML, CSV (durch Kommas getrennte Werte, die von Tabellenkalkulationsprogrammen gelesen werden können) und als einfache Textausgabe exportieren. Zum Exportieren des Berichts verwenden Sie die Funktion reportLib.exportReport() im EGL-Berichtstreiberprogramm zusammen mit der Berichtsvariable und einem Parameter, der das Format des Berichts angibt.
myReport.ReportExportFile = "c:\\temp\\my_report.pdf";
reportLib.exportReport(myReport, ExportFormat.pdf);
Wichtig: Exportierte Berichte werden von JasperReports nicht automatisch aktualisiert. Wenn Sie das Berichtsdesign ändern oder wenn sich die Daten ändern, müssen Sie den Bericht neu mit Daten füllen und den Bericht erneut exportieren.