JasperReports und iReport Designer

Screenshot iReportDas Projekt TrafficAnalysis wurde um eine Report-Funktion erweitert, die das Ergebnis der Berechnung automatisch in eine Html- oder PDF-Datei wandelt. Das Zielformat und die Gestaltung des Ergebnisses sollten vom Projekt unabhängig festgelegt werden können. Zum Einsatz kam JasperReports und iReport Designer (ein freies und leistungsfähiges Werkzeug zur Definition der Reports). Die JasperReports-Bibliotheken beinhalten einen umfangreichen XML-Dialekt zur Beschreibungen von Berichten (mit einfachen Berechnungen und Bedingungen). Es stehen fertige Klassen zur Verfügung mit denen die Vorlagen mit Daten befüllt werden können (SQL, CSV usw.). Es werden viele populäre Formate für die Ausgabe unterstützt (z.B. PDF, Text und HTML).

Installation

Die Suche nach den benötigten Bibliotheken gestaltete sich ungewöhlich schwierig, da eine Menge Projekte eingebunden werden und diese in verschiedenen Abhängigkeiten zu finden sind. Für die Integration in die eigenen Projekte hat sich der Weg über den iReport Designer bewährt, dessen Einrichtung – dank des Installers – denkbar einfach ist. Die folgenden Jar-Archive liegen alle im lib Verzeichnis unterhalb des iReport-Programmverzeichnisses.

jasperreports-1.2.8.jar
commons-digester-1.7.jar
commons-collections-2.1.jar
commons-beanutils-1.5.jar
commons-logging-1.0.2.jar
commons-javaflow-20060411.jar
itext-1.3.1.jar
poi-2.0-final-20040126.jar
jdt-compiler-3.1.1.jar
jfreechart-1.0.0.jar
jcommon-1.0.0.jar

Je nach Anforderung müssen noch weitere Archve eingebunden werden. So liegt dem iReport auch eine Bibliothek bei, welche die Verarbeitung von Microsoft Excel Dateien ermöglicht.

Grundlagen

Ein Report ist die tabellarische und grafische Darstellung einer Datenmenge. Jedem Report liegt eine Defiition zu Grunde. Diese wird bei der Vorbereitung mit den ermittelten Daten gefüllt und in das eigentliche Ergebnis (z.B. eine PDF-Datei) überführt.

Ablauf JasperReports

In unserem Beispiel (Code Ausschnitt) übersetzen wir die (mit iReport) erstellte Definition, legen eine HashMap mit Parametern an und lassen eine DataSource auf die zuvor erzeugte CSV-Datei zeigen. In der letzten Zeile wird alles zusammen gebracht und in ein PDF-File geschrieben.

[code lang=“java“]JasperReport jasperReport;
JasperPrint jasperPrint;

String d = „c:\\temp\\report.jrxml“;
jasperReport = JasperCompileManager.compileReport(d);

// Parameter

HashMap map = new HashMap();

map.put(„TA_REPORT_TITLE“, title);
map.put(„TA_MAX_ROWS“, new Integer(maxRows));

// Daten

JRCsvDataSource dataSource = new JRCsvDataSource(
new FileReader(„c:\\temp\\report.csv“));

dataSource.setColumnNames(
new String[]{„datum“,“ip“,“rich“,“proto“,“port“,“ges“,“emp“});
dataSource.setFieldDelimiter(‚;‘);
dataSource.setDateFormat(new SimpleDateFormat(„yyyy-MM-dd“));
dataSource.setUseFirstRowAsHeader(true);

// Report

jasperPrint = JasperFillManager.fillReport(jasperReport, map, dataSource);

String p = „c:\\temp\\report.pdf“;
JasperExportManager.exportReportToPdfFile(jasperPrint, p);[/code]

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.