Was ist Jaspersoft-Studio (Nachfolger von iReport)
Jaspersoft-Studio ist der Nachfolger von iReport und im Grunde ein graphischer Editor zum Erstellen bzw. Bearbeiten von Templates für JasperReport (sogenannten "jrxml-Dateien").
Die nachfolgende Dokumentation wurde initial für iReport geschrieben, ist jedoch weitestgehend auch für das Jaspersoft-Studio anzuwenden.
Beachten Sie deshalb die korrekte Version zu ihrer oxaion-Installation.
Jaspersoft-Studio/iReport kann damit auch für die Bearbeitung des Layouts von oxaion Print Belegen genutzt werden.
Die Templates werden in Jaspersoft-Studio/iReport ähnlich wie in einen Zeichenprogramm bearbeitet und abgespeichert. Durch die Kompilierung wird eine binäre Version als .jasper-Datei erstellt. Diese verarbeitet oxaion Print.
iReport installieren und konfigurieren
Wie bereits erwähnt, ist jedes Programm zur Verwaltung von Templates für JasperReport für die Änderung des Beleglayout geeignet. Da wir die notwendigen Arbeiten anhand von iReport erläutern werden, geben wir in diesem Kapitel Hinweise zur Installation dieses Programms.
Zu Ihrer Bequemlichkeit haben wir iReport als ZIP-Datei auf die oxaion-CD gelegt. Wir weisen ausdrücklich darauf hin, dass wir Ihnen damit keinerlei Nutzungsrechte an dem Programm übertragen. Die Nutzungsrechte erhalten Sie unentgeltlich direkt vom Hersteller dieses Produktes. Bitte vergleichen Sie dazu auch unsere AGB, insbesondere Kapitel 1.5.
Insbesondere übernehmen wir auch keinerlei Haftung für eventuelle Fehler des Programms oder Schäden, die aus der Nutzung von iReport resultieren.
Versionshinweise
Ab oxaion 5.1 bis open Version 2021.5409.1 (September 2024) wird die Version TIBCO JasperSoft Studio 6.5.1 verwendet.
Ab oxaion open 2021.5409 (September 2024) wird TIBCO JasperSoft Studio 6.13.0 verwendet.
→ H:\Tools\JasperStudio\TIB_js-studiocomm_6.13.0_windows_x86_64.exe bzw. jasperstudio-6.13.0.zip
nur ganz alte oxaion Installationen (4.x/5.0) benötigen noch den iReport
Installation iReport
In diesem Kapitel wird die Installation unter einem Windows-Betriebssystem beschrieben. Informationen für eine Installation unter Linux oder Mac finden Sie auf der oben genannten Homepage.
Auf der *oxaion* -CD befindet sich die Datei [iReport-...-windows-installer.exe].
Starten Sie das Installationsprogramm via Doppelklick
Folgen Sie der iReport-Installationsroutine
Nach der Installation sollten Sie eine Verknüpfung in Ihrem Startmenü (Programme → Jaspersoft → iReport) auf Ihrem Desktop vorfinden.
Einstellungen in iReport
Damit in iReport Barcodes korrekt dargestellt werden muss folgende Einstellung vorgenommen werden:
In iReport die Optionen öffnen (Extras → Optionen)
Auf den Reiter "JasperReports Properties" gehen
Nach der Option mit dem Namen "net.jasperreport.components.barcode4j.image.producer" suchen und den Wert "image" eintragen
Mit iReport arbeiten
Dieser Abschnitt bezieht sich auf die Version 4.1.2 von iReport. Folgeversionen können optisch anders aussehen und weitere Funktionen bieten.
oxaion Print nutzt JasperReports Version 4.1.2. Sobald Sie eine andere iReport-Version als 4.1.2 nutzen, müssen Sie dafür sorgen, dass die von Ihnen genutzte iReport-Version mit JasperReports 4.1.2 arbeitet!
Beachten Sie, dass sich die aktiven Templates für oxaionPrint nicht in dem Verzeichnis von iReport sondern im Verzeichnis des oxaionPrint-Servers befinden.
In diesem Handbuch beschreiben wir nur die für oxaionPrint relevanten Funktionen. Wollen Sie sich tiefer in iReport einarbeiten, empfehlen wir Ihnen die Original-Handbücher von iReport bzw. die Online-Hilfe.
Nach einer erfolgreichen Installation können Sie nun iReport starten und vorhandene Templates laden und ändern.
Wir empfehlen Ihnen den kompletten "template"-Ordner mit allen vorhandenen Templates zu sichern bevor Sie mit dem Ändern der Templates beginnen!
Die iReport-Oberfläche
Die iReport-Oberfläche besteht grob aus 5 Elementen.
|
Ein vorhandenes Template bearbeiten
Zum Bearbeiten der Templates laden Sie ein Template in iReport. Der Name des Subreports wird in einem Tab über dem Arbeitsbereich und im Arbeitsbereich der Inhalt des Templates angezeigt.
Um Übung für die Arbeit mit iReport zu bekommen sollten Sie sich ein paar aufwändige Templates in einem anderen Verzeichnis ablegen. In diesem Templates können Sie Felder verschieben, kopieren oder positionieren, Bezeichnungen ändern und anschließend kompilieren.
Formatierte Texte aus oxaion nutzen
In oxaion gibt es die Möglichkeit die Texte in der Textverwaltung mit Formatierungen zu versehen.
So können Texte u.U. verschiedene Textauszeichnungen enthalten: Es können verschiedene Farben benutzt werden, Textteile können fett, kursiv und unterstrichen oder in Äquidistanzschrift gedruckt werden.
Diese Texte können in oxaion Print auch formatiert gedruckt werden.
Textfelder für formatierte Texte vorbereiten
Disclaimer
Obwohl der Text-Editor in oxaion eine intuitive Formatierung erlaubt, ist er kein WYSIWYG-Editor. In Abhängigkeit der verwendeten Schriftarten und deren Größe im Client und beim Druck kann es zu optischen Differenzen insbesondere bei Verwendung von Tabulatoren kommen. Es ist daher empfehlenswert, Texte mit Tabulatoren nach der Erfassung im Belegdruck auf die Ausrichtung hin zu überprüfen.
Die Textfelder eines oxaion Print-Templates können so konfiguriert werden, dass Sie den Druck von formatiertem Text erlauben.
Wählen Sie hierfür einfach unter Eigenschaften des gewünschten Feldes den Parameter "Markup" und wählen das Attribut "Styled" aus.
Bei den Vorlagen, die mit oxaion Print ausgeliefert werden, ist diese Option bei allen Feldern, die formatierte Texte unterstützen, bereits aktiviert.
Schriftarten bei formatierten Texten
In Textfeldern mit formatierten Texten werden verschiedene Schriftarten eingesetzt. Die Basisschriftart und –größe wird im Textfeld selbst wie gewohnt definiert.
Für die erweiterten Formatierungen müssen jedoch weitere Definitionen vorgenommen werden, z.B. muss die Schriftart für Fettdruck oder Äquidistanzdruck definiert werden.
Hinweis bei Tabulatoren
Damit die Spaltenaufteilung der Texte bei der Verwendung der Tabulatoren im Ausdruck möglichst identisch ist mit der Formatierung während der Texteingabe ist, muss sichergestellt werden, dass die im Ausdruck verwendete Schriftart und -größe auch für die Texteingabe im Client eingestellt wurde. Standardmäßig werden die Print-Templates mit der Schriftart "Arial“ der Größe "9“ ausgeliefert.
Andernfalls können im Ausdruck unerwünschte "Verschiebungen" entstehen.
Beispiel korrekte Eingabe | Unerwünschte Verschiebung im Ausdruck |
---|---|
Feld ändern
Anhand des Templates vk20201.jrxml zeigen wir Ihnen, wie Sie selbst Anpassungen vornehmen können und welche Funktionen hinter den Feldern stecken.
Markieren Sie das zu bearbeitende Textfeld mit einem Klick. Anschließend werden unter Eigenschaften alle Attribute dieses Textfeldes angezeigt, u.a. auch "Text Field Expression". Hier werden die gewünschten Textmarken für dieses Textfeld hinterlegt. Der Button auf der linken Seite des Feldes öffnet ein etwas größeres Eingabefenster, welches die Eingabe erleichtern soll.
In diesem Fall sollen die Felder KOAKDNR (Kundennummer) und KOAFINR (Filialnummer) sowie KOACPDN (CPDN-Nummer) angedruckt werden:
$F{KOAKDNR}" "$F{KOAFINR}" "$F{KOACPDN}
Schrifttyp festlegen
In oxaion Print können Sie alle Schriften, die im Schriftenverzeichnis des Print-Servers bzw. innerhalb der von Ihnen definierten Ablage liegen verwenden.
Beachten Sie, dass sich eine Änderung des Schrifttyps, der Schriftgröße oder Schriftschnitt, der Ausrichtung und der Effekte auf das gesamte Feld bezieht. Werden in dem Feld mehrere Textmarken verwendet, nehmen alle die Änderungen an. Die Änderungen sind sofort, ohne weitere Bestätigung wirksam und werden im geöffneten Template angezeigt.
Eigenschaften für ein Textfeld | Beschreibung der Parameter | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Wenn Sie keine Standard-Print-Schrift verwenden, muss neben der Schriftart auch die PDF Schriftart im Print-Template gepflegt werden. Werden diese beiden Angaben unterschiedlich hinterlegt, wird keine 100% Übereinstimmung des Ausdrucks mit dem PDF Dokument garantiert, da hier u.U. für das PDF Dokument andere Schriften oder andere Formatierungen verwendet werden.
Hintergrund zu den Standard-Print-Schriften / "Font Extensions":
iReport bietet die Möglichkeit der sog. "Font Extensions". Diese "Font Extensions". enthalten Schriftarten und deren entsprechende Konfiguration zur Verwendung in PDF-Dokumenten. Zu den Standard-Print-Schriften gehören Arial, Courier New, OCRA, OCRB, Lucida Sans Typewriter.
Die Standard-Print-Schriftarten finden sich in der Datei oxaion-reports-fonts.jar. Sollten im Kundenprojekt abweichende Schriftarten notwendig sein, kann es sinnvoll sein, für die Kunden-Schriften eine eigene kunden-fonts.jar zu erstellen. Über eine Modifikation der bestehenden oxaion-reports-fonts.jar kann man zentral dafür sorgen, dass alle Print-Belege mit einer abweichenden Schrift arbeiten. Allerdings gilt zu berücksichtigen, dass Modifikationen der oxaion-reports-fonts.jar nicht automatisch in ein neues Release / GMT übernommen werden, sondern manuell nachgezogen werden muss.
Bitte beachten Sie zu den Standard-Print-Schriftarten auch die Lizenz-Hinweise in Kapitel 0 dieses Handbuches.
Hintergrund zu den "Styles"
iReport bietet die Möglichkeit sich so genannte "ReportFonts" oder die etwas neuere Variante "Styles" zu hinterlegen. Dies entspricht einer Formatvorlage wie Sie es eventuell schon von diversen Office-Paketen kennen. Da frühere Versionen von iReport an dieser Stelle sehr fehleranfällig waren, werden alle Belege ohne ReportFont- und ohne Style-Hinterlegung ausgeliefert. Selbstverständlich steht es Ihnen frei diese Möglichkeit zu nutzen – wir raten aber ausdrücklich hiervon ab!
Wir empfehlen folgende Einstellungen:
Parameter | Beschreibung |
---|---|
Font name | Wählen Sie Ihre gewünschte Schriftart aus. iReport gibt hier Helvetica vor. Die von uns ausgelieferten Belege benutzen alle die Schriftart Arial. |
Size | Die von uns ausgelieferten Belege benutzen alle die Schriftgröße 9. |
Bold, Italic, Unterline, Strike Trough | beliebig |
PDF Font name | Diese Angabe ist nur erforderlich, falls Sie keine Standard-Print-Schrift verwenden |
PDF Embedded | Diese Angabe ist nur erforderlich, falls Sie keine Standard-Print-Schrift verwenden |
PDF Encoding | Diese Angabe ist nur erforderlich, falls Sie keine Standard-Print-Schrift verwenden |
Horizontal / Vertical Ausrichtung | beliebig |
Rotation | Drehung der Textmarke |
Line Spacing | Einfacher Zeilenabstand Single |
Markup | beliebig |
Report font | Wird nicht mehr unterstützt |
Die Steuerfunktionen innerhalb der Felder
Unter den Eigenschaften eines Feldes finden Sie auch jede Menge Parameter zur individuellen Einstellung des Erscheinungsbildes des Feldes.
Hinterlegung von Prüfungen (Expressions)
Ein Textfeld soll in Abhängigkeit einer Textmarke angezeigt oder gelöscht werden. Das Feld TX_FAX nur angezeigt werden, wenn die Textmarke KETFAX mit einem Wert gefüllt wurde.
Dazu kann die Funktion \[Print when Expression\] verwendet werden.
Tragen Sie im unteren Feld die folgende Textzeile ein:
new Boolean (((TreeDataSource)$P{REPORT_DATA_SOURCE}.isNotEmptyText)
new Boolean (((TreeDataSource)$P{REPORT_DATA_SOURCE}.isNotEmptyText)
Auflistung nützlicher Expressions
Inhalte der Beispielfelder: | $F{Field1}"Feld(1)" $F{Field2}"Feld(2)" | |
---|---|---|
Art der Expression | Expression | Beschreibung / Ergebnis |
Print When Expression | new Boolean(($V{PAGE_NUMBER}.intValue() > 1) | Wert wird nicht auf der ersten Seite angedruckt. |
new Boolean(!$F{Field1}.trim().equals("")) | Feld wird ausgegeben, wenn der Inhalt von Field1 nicht leer ist. | |
Text Expression | $F{Field1} + " / " + $F{Field2} | Feld(1) / Feld(2) |
new String($F{Field1}.length()>3 ? $F{Field1} : $F{Field1}.substring(0, 2)) + "/" + new String($F{Field1}.length()>3 ? $F{Field1} : $F{Field1}.substring(3)) | Fe/d(1) | |
new String($F{Field1}.equals("Feld(1)")?$F{Field1}:$F{Field2}) | Syntax: Bedingung ? Wahr : Falsch Falls Feld1 den Wert "Feld(1)" hat, wird dieses auch ausgegeben, ansonsten wird der Wert des Field2 ausgegeben. |
Mit Barcode arbeiten
iReport unterscheidet zwischen Bild und Barcode (Image-Tool und Barcode-Tool). Das Barcode-Tool wird von oxaion Print nicht benutzt, stattdessen wird auch das Image-Tool für Barcodes genutzt. oxaion Print unterstützt im Standard den Barcode 3of9 sowie den Barcode 3of9 extended. Der Textmarkenname für den Barcode lautet im folgenden Beispiel KOPFBARCODE.
Erstellen Sie mit Hilfe des “Image Tools“ einen Platzhalter für ein Bild.
Auf der Lasche “Allgemein“ tragen Sie mindestens das folgende Java-Statement ein:
new Boolean($F{Textmarkenname} !=null && !$F{Textmarkenname}.equals("")
In dem folgenden Screenshot lautet der Textmarkenname KOAAUNR. Zusätzlich wird noch der Parameter PARAM_BARCODE geprüft. Hiermit kann aus oxaion zentral gesteuert werden, ob ein Barcode gewünscht ist oder nicht.
Auf der Lasche "Bild" tragen Sie ein weiteres Java-Statement ein:
new Barcode3of9(''$F{Textmarkenname}'')
Die *-Symbole dienen der Methode als Start- sowie Endezeichen und umschließen damit den zu transformierenden Inhalt.
Festlegen der Größe des Barcodes
Die Größe des Barcodes unterliegt dem folgenden Sachverhalt:
Ist eine bestimmte Höhe des Barcodes gewünscht, so muss die Länge des Feldes Lfeld grösser sein wie die maximale Länge des Barcodes Lbarc. Soll hingegen der Barcode eine gewünschte Länge haben, so muss Hfeld grösser wie die maximale Höhe Hbar.
Der Barcode ist immer durch die Dimensionen des Feldes begrenzt.
In der Praxis bedeutet das für die Barcodehöhe, dass die maximale Barcodelänge ermittelt wird und daraus ermittelt sich die maximale Feldlänge (Lfeld = Max(Lbarc) * Faktor: 1,5).
Bedingung für die gewünschte Dimension:
HBarc LFeld > Max(LBarc)
LBarc HFeld > Max(HBarc)
Template mit einer Grafik versehen
Um dem Beleg eine Grafik hinzufügen zu können, müssen Sie die hier aufgelistete Arbeitsschritte berücksichtigen.
Im folgenden Beispiel lautet der Textmarkenname KBIMAGE.
- Erstellen Sie mit Hilfe des "Image Tools" einen Platzhalter für ein Bild.
- Zur Sicherheit (wird auf ein nicht vorhandenes Bild ohne Prüfung verzweigt, bricht der Druck ab) tragen Sie unter Print When Expression folgendes Java-Statement ein:
new Boolean($F{Textmarkenname} != null && new java.io.File ($F{Textmarkenname}).exists())
Hierbei muss die Textmarke den Pfad zum Bild vollständig enthalten.
Unter dem Parameter "Image Expression“ tragen Sie ein weiteres Java-Statement ein:
new java.io.File({Feldname})
Textmarkendefinitionen ändern oder umdefinieren
Die in den Textfeldern definierten Textmarken müssen in der als Feld (bzw. als Parameter) definiert sein.
Beachten Sie, dass dies nicht automatisch mit der Neuanlage eines Feldes oder Feldnamens im Template passiert. Nachdem Sie das Feld in der Formel definiert haben, müssen Sie es auch in der Objektbibliothek anlegen.
Klicken Sie mit der rechten Maustaste auf "Parameters" oder "Fields", je nachdem ob Sie einen neuen Parameter oder ein neues Feld definieren möchten. In dem sich öffnenden Kontextmenü wählen Sie anschließend "Hinzufügen von Parameter" bzw. "Hinzufügen von Field"
Unter "Eigenschaften" werden nun die entsprechenden Eigenschaften zur Anlage einer neuen Textmarke angezeigt. Geben Sie hier den Namen der Textmarke ein, lassen bei den restlichen Felder den Default-Wert und bestätigen den Vorgang mit <ENTER>.
Schreiben Sie den Namen hier genau so, wie im Textfeld. iReport überprüft an dieser Stelle nicht die Gleichheit der Namen. Ein falscher Name fällt erst bei der Kompilierung auf. Hierbei wird auch zwischen Groß- und Kleinschreibung unterschieden.
Übertrag und Vortrag
Voraussetzung:
Das entsprechende Java-Druckprogramm muss den Übertrag (meistens die Variable CARRY) füllen bzw. addieren und mit dem XML-Strom an den Print-Server übergeben.
Arbeiten am Template:
1. Jedes Format, welches einen Übertrag besitzt, muss im Template ein Feld $F{CARRY} + "AS CARRY" enthalten. Dieses sollte in der Nähe des Feldes angebracht werden, welches den Wert des Übertrags ändert. Dieses Feld enthält den aktuellen Übertrag. Keine Angst – der Übertrag wird nicht angedruckt. Bevor der Beleg an den Drucker gesendet wird löscht der Print-Server diese Felder aus dem erstellten Beleg.
Damit man dieses Feld immer schnell im Template findet haben wir sie rot gefärbt. Wir empfehlen dies so beizubehalten. Das Feld muss so groß definiert werden, dass man in iReport den Inhalt lesen kann. Z.B.:
2. Im D-Format müssen folgende Felder existieren: "%F_CARRY%" dieses Feld muss im Band "pageHeader" angelegt werden. Es enthält den Vortrag. Hat man eine Überschriftszeile (siehe Beispiel), so muss es unter der Überschrift liegen. "%CARRY%" dieses Feld muss im Band "page Footer" liegen. Es enthält den Übertrag. Die Felder müssen so groß definiert werden, dass man in iReport den Inhalt lesen kann. Z.B.:
Was passiert beim Druck des Übertrags?
An den definierten Stellen im Beleg werden die Überträge angedruckt (siehe rote Texte in dem folgenden Screenshot). Am Seitenende greift sich die im D-Format definierten Variable einfach den letzten angedruckten Wert und duckt diesen (siehe blaue Linie). Anschließend werden alle roten Texte gelöscht und dass Dokument an den Drucker gesendet.
Templates Kompilieren und testen
Damit oxaion Print die Templates nutzen kann, müssen diese kompiliert werden. Die Kompilierung führt oxaion Print selbst durch.
Nachdem Sie die geänderten oder neuen Templates in das entsprechende Verzeichnis oxaion Print -Servers kopiert haben, kompiliert oxaion Print die Templates beim nächsten Druckauftrag selber und erstellt beispielsweise für das Template vk20201.jrxml die Printvorlage vk20201.jasper bzw. erneuert die Printvorlage.
Hierbei existieren 2 Möglichkeiten, welche über die Option "Auto-Compile" in der Datei "server.xml" eingestellt werden können:
Parameter | Bedeutung |
---|---|
auto-compile = true | Mit dieser Einstellung wird bei jedem Druck die Aktualität der Jasper-Datei geprüft. Ist die Jasper-Datei älter als die entsprechende JRXML-Datei oder ist zur einer JRXML-Datei keine Jasper-Datei vorhanden, so wird eine neue Jasper-Datei erstellt. |
auto-compile = false | Diese Einstellung prüft immer nur die Root-Datei, in diesem Fall das vk20201.jrxml. Ist die zugehörige Jasper-Datei vorhanden wird nicht neu kompiliert. Fehlt diese Datei werden alle Templates des Beleges neu kompiliert. |
Wir empfehlen mit der Einstellung auto-compile = true zu arbeiten, da hierbei das kompilieren auf ein Minimum beschränkt wird und dies einen Zeit- und Performancegewinn darstellt.
Zum Testen Ihrer geänderten Belege sollten Sie immer eine separate oxaion Print –Testumgebung haben und niemals Ihre Änderungen sofort – ohne Test – im Produktionssystem einspielen!