Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 9 Nächste Version anzeigen »

Scriptlets bieten ein mächtiges Werkzeug, durch selbst angefertigte Java Klassen Einfluss auf die Ausführung eines Reports/Formular zu nehmen. Zur Erstellung eines einfachen Scriptlets genügt es von net.sf.jasperreports.engine.JRDefaultScriptlet abzuleiten. In dieser Klasse sind Funktionsrümpfe implementiert, welche keinen Inhalt besitzen sind und mit eigenen Java-Code definiert werden können. Sie können müssen aber nicht benutzt werden. Einen Überblick zu den Funktionen gibt es bei http://www.massapi.com/source/jasperreports-4.0.2 oder http://jasperreports.sourceforge.net/api.

Eine schrittweise Anleitung zur Anfertigung eines Scriptlets und Verwendung im iReport kann im Jasperreport ultmade Guide wunderbar nachvollzogen werden.

Daher werden hier nur die Eckpunkte und Besonderheiten in Bezug auf Nuclos erleutert.

Ablauf

  • Scriptletclass erstellen
  • Scriptlet in iReport testen

 

Scriptlet-Class erstellen

  • Ein Java-Library-Projekt erstellen
  • Alle selbst erstellten Klassen sollten sich in einem Package befinden.
  • aktuelles JDK verwenden
  • Jasperreport-3.5.3.jar als abhängige Library hinzufügen
  • andere Abhängikeiten hinzufügen

Scriptlet in iReport testen

Das Scriptlet sollte erst in Nuclos eingebunden werden wenn es sicher funktioniert! Über die Preview im iReport kann die zukünftige Verwendung getestet werden. Dafür müssen zunächst die Klassen/Klasse dem Classpath von iReport bekannt gemacht werden. Unter Extras -> Optionen - > Tab: Classpath fügt man mit add Jar das Archiv seines Scriptlets hinzu (xyz.jar). Zusätzlich sollte hier das Häkchen für reloadable gesetzt werden damit auch jegliche Änderungen wirksam werden. An dieser Stelle müssen auch die abhängigen Librarys hinzugefügt werden, auch die jasperreports-3.5.3.jar.

Wenn es sich um nur ein Scriptlet handelt, wird lediglich der Klassenname (vollständiger: com.package.klasse) unter den Eigenschaften des Dokumentes beim Property "Scriptlet Class" eingetragen. Nach dem Speichern findet sich der Klassenname an allen wichtigen Stellen.( Scriptlet -> Report, $P{REPORT_SCRIPTLET}).

Jenachdem was das Scriptlet ausführen soll bzw. mittels ihre definierten Funktion zurückgibt, wird die entsprechende Komponente aus der Palette ausgewählt.( Image, TextField). im Image/Text Expression unter den Eigenschaften wird die Methode über den Parameter aufgerufen.($P{REPORT_SCRIPTLET}.methodexy())

 

 

 

 

 

  • Keine Stichwörter