Date: Fri, 29 Mar 2024 02:32:27 +0000 (UTC) Message-ID: <289695746.1736.1711679547812@wiki.rz.novabit.de> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_1735_733120610.1711679547811" ------=_Part_1735_733120610.1711679547811 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Scriptlets bieten ein m=C3=A4chtiges Werkzeug, durch selbst angefertigte= Java Klassen Einfluss auf die Ausf=C3=BChrung eines Reports/Formular zu ne= hmen. Zur Erstellung eines einfachen Scriptlets gen=C3=BCgt es von = net.sf.jasperreports.engine.JRDefaultScriptlet abzuleiten. In dies= er Klasse sind die zahlreichen Funktionsr=C3=BCmpfe der Klasse net.= sf.jasperreports.engine.JRAbstractScriptlet durch leere Methoden i= mplementiert. Sie k=C3=B6nnen dann diejenigen Methoden, welche sie wirklich= ben=C3=B6tigen, mit Ihrem eigenen Inhalt =C3=BCberschreiben. Einen =C3=9Cb= erblick zu den Funktionen gibt es hier: JRDefaultScriptlet (JasperReports API) = (sourceforge.net).
Eine schrittweise Anleitung zur Anfertigung eines Scriptlets und Verwend= ung in Jaspersoft Studio kann im JasperReports Ultimate Guide wunderbar nac= hvollzogen werden.
Daher werden hier nur die Eckpunkte und Besonderheiten in Bezug auf Nucl= os erl=C3=A4utert.
Das Scriptlet sollte erst in Nuclos eingebunden werden, wenn es sicher f= unktioniert! =C3=9Cber die Preview in Jaspersoft Studio kann die zuk=C3=BCn= ftige Verwendung getestet werden. Daf=C3=BCr m=C3=BCssen zun=C3=A4chst die = Klasse(n) dem Classpath von Jaspersoft Studio bekannt gemacht werden. Unter= Extras -> Optionen - > Tab: Classpath f=C3=BCgt man mit add Jar das = Archiv seines Scriptlets hinzu (xyz.jar). Zus=C3=A4tzlich sollte hier das H= =C3=A4kchen f=C3=BCr reloadable gesetzt werden, damit auch jegliche =C3=84n= derungen wirksam werden. An dieser Stelle m=C3=BCssen auch die abh=C3=A4ngi= gen Libraries hinzugef=C3=BCgt werden, auch die jasperreports-7.16.0.jar.= p>
Wenn es sich um nur ein Scriptlet handelt, wird lediglich der Klassennam= e (vollst=C3=A4ndiger: com.package.klasse) unter den Eigenschaften des Doku= mentes beim Property "Scriptlet Class" eingetragen. Nach dem Speichern find= et sich der Klassenname an allen wichtigen Stellen.( Scriptlet -> Report= , $P{REPORT_SCRIPTLET}).
Je nachdem, was das Scriptlet ausf=C3=BChren soll bzw. mittels ihre defi= nierten Funktion zur=C3=BCckgibt, wird die entsprechende Komponente aus der= Palette ausgew=C3=A4hlt (Image, TextField). Im Image/Text Expression unter= den Eigenschaften wird die Methode =C3=BCber den Parameter aufgerufen ($P{= REPORT_SCRIPTLET}.methodexy()).
In Jaspersoft Studio 6.17.0 ist ein Bug, welcher bewirkt, dass Reporte m= it Scriptlets nicht korrekt kompilieren. Wenn Sie Reporte mit Scriptlets in= Jaspersoft Studio testen wollen, m=C3=BCssen Sie daher entweder ein Versio= n zur=C3=BCck gehen oder pr=C3=BCfen, ob es mittlerweile eine neuere Versio= n ohne dieses Problem gibt.
Damit Reporte, welche das Scriptlet verwenden, unter Nuclos funktioniere= n, m=C3=BCssen die Scriptlets als serverseitige Extensions eingebunden werd= en. Wie dies genau funktioniert, ist im Kapitel Jasper Extensions in Nuclos beschri= eben.