(c) HELIUM V IT-Solutions GmbH    

Report Editor

Installation und Einrichtung von Jaspersoft Studio

Für HELIUM V wird Jaspersoft Studio als Werkzeug für die Report-Bearbeitung verwendet. Bitte beachten Sie, dass der Vorgänger iReport nicht mehr unterstützt wird. Eventuell sind Ihre Reports mit iReport nicht mehr bearbeitbar. Eine ausführliche Anleitung für die Installtion und Einrichtung können Sie hier oder über den folgenden Button herunterladen.


Hinweise zu der Arbeitsweise

Für das Arbeiten mit dem Report-Generator sollte mindestens eine Zwei-Tasten Maus zur Verfügung stehen. Eine Bearbeitung der Druckformulare mit nur eine Maustaste (MAC) ist nicht möglich.

Achtung: Wenn Sie Druckformulare selbst bearbeiten wollen, müssen Sie diese als Anwenderreport ablegen, da ansonsten die bearbeiteten Reports bei einem Update der HELIUM V Version gelöscht werden! Die Hierachie der Verzeichnissstruktur können Sie unter "System -> Druckformulare" entnehmen.

Für die Bearbeitung von Reports benötigen Sie Schreibzugriff auf das Report-Verzeichnis Ihres HELIUM V Servers.

Grundsätzliche Vorgangsweise beim Bearbeiten eines Reports

1. Wenn nicht vorhanden, ein Verzeichnis für Anwenderreport anlegen, und Originalreports hineinkopieren.
2. Bei bereits vorhandenem Anwenderreport: Backup des Anwenderreport-Verzeichnis erstellen.
3. Textfelder (Felder oder Parameter) anpassen.
4. Änderung speichern und mit "Build - Compilieren" werden ihre Änderungen im laufenden System übernommen.
5. Änderung mit Helium Client ansehen (den entsprechenden Report Druck aufrufen).

Feldnamen der Reports

Starten sie das Programm Jaspersoft Studio. Gehen Sie auf "Datei -> Öffnen" und laden Sie den entsprechenden Report.

Unter "Ansicht -> Report Felder" und "Ansicht -> Report Parameter" finden Sie die Feldnamen und die Parameter Namen des Report.

"Felder" werden nur im Detailabschnitt des Reports verwendet. Für jede z.B Rechnungsposition wird eine Zeile im Detailabschnitt des Reports gedruckt. 
Zugriff auf ein Feld mit dem Namen Gesamtpreis ist über $F{Gesamtpreis} möglich.

"Parameter" sind nur einmal im ganzen Report vorhanden.
Zugriff auf einen Parameter mit dem Namen P_KOPFTEXT ist über $P{P_KOPFTEXT} möglich.

Die Namen sind sprechend gewählt z.B im Anwenderreport der Rechnung unter:
im Dateiverzeichnis Ihres HELIUM V-Server (...) \Helium_V\jboss-4.2.2.GA\server\helium\report\rechnung\anwender\rech_rechnung.jrxml 
finden Sie den Parameter P_KOPFTEXT, dieser enthält den Kopftext der Rechnung.

Wollen Sie z.B P_KOPFTEXT ändern gehen Sie im Report auf das entsprechende Feld, klicken mit der rechten Maustaste darauf und wählen "Eigenschaften".

Unter "Textfeld -> Ausdruck für Textfeld" sehen Sie den Wert des Feldes.
Wenn Sie unten Rechts auf "Expression Editor öffnen" klicken können Sie leicht verschiedene Felder oder Parameter auswählen und mit "Anwenden" übernehmen.

Unter "Allgemein -> Drucken wenn" wird angegeben, wann der Inhalt des Feldes angedruckt werden soll. 
Z.B new Boolean($F{Positionsart}.equals("Stuecklistenpos"))
gibt an das das Feld nur gedruckt werden soll, wenn der Wert des Feldes Positionsart gleich "Stuecklistenpos" ist.

In Textfeld und Allgemein können Sie einige Konstrukte der Java Programmiersprache verwenden, die Datentypen der Felder und Parameter entsprechen Java Datentypen, weitere Informationen dazu finden Sie in der Java Dokumentation.

Wenn Sie Änderungen durchgeführt haben, gehen Sie auf "Build -> Compilieren" und ihre Änderungen werden im laufenden System übernommen.

Bevor Sie Änderungen machen empfehlen wir ein Backup des Reportverzeichnises zu erstellen, dadurch können fehlerhafte Änderungen zurückgenommen werden.

Breite der Barcodes:

Die Größe der gedruckten Barcodes richtet sich nach der Größe des definierten Feldes. Der Barcode wird so gedruckt, dass er sowohl von der Breite her, als auch von der Höhe her in die gedachte Umrahmung des Feldes passt. Zugleich wird das für den Barcode erforderliche Strich/Lücken Verhältnis beibehalten.

Anmerkung: Die Angabe erfolgt in 1/72" (Punkt bzw. Dezidot) Für die Umrechnung von Punkten auf mm verwenden Sie als Näherung bitte einen Multiplikator von 0,353. So ergeben 220 Punkte eine Breite von 77,66mm

In der Praxis hat sich bewährt, eine Höhe von 10mm (28Punkte) zu verwenden und die Breite ausreichend Breit zu definieren.

(100/72 = Inch * 25,4 = mm = 1/72*25,4 = 0,35277)

Bitte bedenken Sie, dass ein gut lesbarer Barcode zu anderen Strichen und Kanten einen ausreichenden Abstand haben muss. Als mindest Abstand ist die Breite zweier Zeichen zu empfehlen. 

Bitte bedenken Sie auch, dass Barcodescanner üblicherweise eine maximale Erfassungsbreite von 70mm haben. D.h. mit einem Rand von wenigen Zeichen darf ein Barcode maximal 220Punkte breit sein.

Definition der Barcodetype

Die Definition der Barcodetype wird über den Formulareditor vorgenommen.

Üblicherweise wird der Code 39 verwendet. Bitte beachten Sie dazu auch Drucken von Barcodes.

Welche Parameter können wo verwendet werden.

Alle Parameter sind in den vordefinierten, von uns gepflegten Reports enthalten. Sollten Sie in Ihrem eigenen (Anwender) Report Parameter vermissen, so öffnen Sie bitte den original Report, gehen Sie auf Ansicht, Reportparameter. Hier sehen Sie nun alle definierten Felder, Variablen und Parameter. Sie können den gewünschten Parameter nun mit der rechten Maustaste kopieren, in Ihren eigenen Report wechseln und dort mit rechter Maustaste und Einfügen in Ihre Reportparameterliste aufnehmen.

ACHTUNG: Die Parameter werden nur innerhalb der gleichen Reports unterstützt. Das Einfügen ungültiger Parameter in einen Report kann zum Abbruch des Programms führen.

Drucken des Pageheaders aus dem Summary heraus, wenn im Summary ein Seitenumbruch ist.

Dies ist im Konzept des JasperReports nicht direkt vorgesehen. Als Work Around gehen Sie bitte wie folgt vor:

Definieren Sie eine neue Gruppe mit Namen Summary und als äußerste Gruppe definieren. D.h. sie muss in der Ansicht der Reportgruppen als erstes stehen. Die Summary-Gruppe mit Header Höhe 0 und Footer Höhe 78 anlegen.
Die Felder aus dem original Summary in den Footer der (neuen) Summary-Gruppe (=SummaryFooter) verschieben.

Das original Summary auf Höhe 0 setzen.

Anmerkung: Sind in den Detailpositionen Felder mit Höhe 0 enthalten, werden sie beim Einfügen der neuen Gruppe nicht mitverschoben. Diese müssen manuell an die richtige Position gebracht werden, also an die richtigen Position in der richtigen Gruppe per Hand nachziehen. Beispiel: $F{Lerrzeile} im Detail des Rechnungsreports.

Dringende Empfehlung:

Bilder, die auf einem Report ausgedruckt werden sollten, dürfen im Dateinamen keine Leerzeichen enthalten. Der Dateiname sollte nur aus Kleinbuchstaben und _ bestehen. Er darf nur mit Buchstaben beginnen, im weiteren Namen dürfen Ziffern vorkommen, aber nicht an erster Stelle.

Definition der Abmessungen des Reports:

Die Abmessungen eines Reports / eines Formulares, z.B. einer Etiketten können im Reportgenerator unter Ansicht, Reporteigenschaften definiert werden. Definieren Sie hier Abmessungen, Ausrichtungen und Ränder.
WICHTIG: Es hat sich bewährt, den Drucker immer im Porträt bzw. Hochformat zu definieren, auch wenn ein Formular verwendet wird, welches Breiter als Hoch ist. Um dies für die Reportvorlage richtig definieren zu können, müssen Sie die Höhe etwas höher als die Breite angeben. Die eigentliche Höhe des Etikettes definieren Sie dann mit der Höhe des Druckbereiches im jeweiligen Druck-Band (Detail, bzw. Title). Siehe dazu auch Etikettendruck.

Wenn Sie die Abmessungen des Reports verringern, so achten Sie bitte unbedingt darauf, dass auch die Höhen der einzelnen Elemente der Dokumentenstruktur (pageHeader, Detail usw.) angepasst werden müssen. Sind diese zu groß erhalten Sie Fehlermeldungen wie:

"1. The detail section, the page and column headers and footers and the margins do not fit the page height."

Gehen Sie in diesem Falle in die verwendeten Elemente (Bands) und klicken Sie in die Band height. Geben Sie hier einen Wert ein der passt (mm -> DeziDots = mm/0,353) oder höher ist. Beim Verlassen des Feldes wird dieser Wert dann automatisch auf die richtige Höhe gesetzt.

Der Druck des Lieferscheins ist nach unten verschoben

Wenn man ein Feld mit einer bestimmten Höhe aus einem Report löscht, dann bleibt der dafür reservierte Platz bestehen, da dieser über die Bandbreite jenes Bandes bestimmt wird, in dem sich das Feld befindet. Um also den entstehenden Leerraum zu entfernen, der durch das Löschen des Feldes entsteht, muss man die Bandbreite entsprechend anpassen.

 

Beispiel: Es wird ein Feld "P_BEZEICHNUNG" mit Höhe 24 Pixel aus dem Band "Title" entfernt. In der Folge muss die Bandbreite des Bandes "Title" ebenfalls um 24 Pixel verringert werden.

Seit meiner letzten Änderungen werden die Texte mit Style Informationen gedruckt.

Wird in Ihrem Report ähnliches wie angedruckt, so muss für das jeweilige Textfeld unter Font, Is styled text angehackt sein, damit die Formatierungsinformationen aus den Kommentardateien, aus den Textdateien usw. mit angedruckt werden.

Datenexport aus der Druckvorschau

Damit insbesondere Listen in anderen Programmen weiterverarbeitet werden können, wird dringend empfohlen die Spalten und Zeilen auszurichten. Nur so wird erreicht, dass auch in den exportierten Daten die Spalten untereinander stehen. Es reicht NICHT dies optisch auszurichten. Es muss dies mit den Jasper Werkzeugen, gleiche Breite UND links bzw. rechtsbündig ausgerichtet werden. Auch die Höhen müssen gleich und ausgerichtet sein.

Für den eigentlichen Export verwenden Sie am Besten den CSV Export.

Um die Datei in Excel zu übernehmen benennen Sie nun die Erweiterung der Datei bitte auf .TXT um. Nun mit Excel öffnen, Getrennte Breite, Trennzeichen Komma, Texterkennung "", markieren Sie nun alle Spalten und Kennzeichnen Sie diese als Text und nun Fertigstellen.

So haben Sie die Daten optimiert importiert.

Drucken von mehrspaltigen Reports z.B. für Etiketten

Mit Jaspersoft Studio können auch mehrspaltige Reports definiert werden, so wie sie z.B. für Laseretiketten für Laserdrucker (Zweckform, Herma, ...) benötigt werden. Definieren Sie dazu die Eigenschaften des Reports unter Bearbeiten, Reporteigenschaften und klicken Sie auf den Reiter Spalten. Geben Sie hier die gewünschte Anzahl der Spalten ein und definieren Sie auch den benötigten Zwischenraum.

Im eigentliche Report finden Sie nun die angegebenen Spalten angezeigt. Definieren Sie nun die Inhalte der linken Spalte.

 

Wichtiger Hinweis:

Der Druck von Etiketten auf A4 Vorlagen ist nur für den Ausdruck von einmaligen "Listen" zu empfehlen. Gerade für die Schritte bei denen einzelne Etiketten benötigt werden, z.B. Wareneingang, werden Drucker benötigt, welche diese Einzelnen Etiketten auch ausdrucken können. Das mehrmalige Einlegen von A4-Etiketten hat schon so manchen Laserdrucker ruiniert. Auch diese Formulare sind nur für den einmaligen Durchlauf durch den Laserdrucker gedacht. Wir hatten immer wieder Fälle in denen einzelne Etiketten sich vom Trägermaterial gelöst haben und auf der Trommel des Druckers geklebt sind.

Praktische Kommandos, Bedingungen in Jaspersoft Studio

Nachfolgend eine lose Sammlung praktischer Kommandos.

  1. Nur Drucken wenn String Leer ist:
    new Boolean($F{F_POSITION}!=null&&$F{F_POSITION}.trim().length()>0)
    F_POSITION ist hier der String

  2. new Boolean($F{F_POSITION}!=null&&$F{F_POSITION}.trim().length()>0 && $F{F_POSITIONSART}.equals("Ident "))

  3.  

Beachten Sie bitte, dass auch jeder Abschnitt seine Bedingung hat. So sind die Bedingungen für den PageHeader üblicherweise in diesem abgebildet ($V{IS_CURRENT_PAGE_NOT_ONE}) und nicht bei jedem einzelnen Feld.

Funktionen die von HELIUM V zusätzlich für die Reportgestaltung verwendet werden können

Nachfolgend eine Sammlung ergänzender Funktionen. Voraussetzung dafür ist, dass das lpclientpc.jar in den Classpath (siehe Extras, Optionen, Classpath) eingebunden ist.

 

Alle Funktionen sind in der Klasse com.lp.util.HelperReport gesammelt. Der Aufruf aus Jaspersoft Studio entspricht immer dem Muster:

com.lp.util.HelperReport.FUNKTION

 

Q: Bei der Komplierung kommt eine ClassNotFoundException Fehlermeldung

A: Diese Meldung bedeutet, dass der Report-Compiler eine Java Klasse nicht findet. Um die Formulare von HELIUM V mit der gewünschten Funktionalität auszustatten, werden viele Klassen direkt von HELIUM V zur Verfügung gestellt. Dafür muss der Pfad auf den HELIUM V Client mit in den ClassPath des Jaspersoft Studio Projekts eingebunden werden.
Sie finden dies unter Extras, Optionen, Classpath. Geben Sie hier den Pfad auf den aktuellen HELIUM V Client an.

Bitte beachten Sie, dass in der Regel der HELIUM V Client unter c:\programme\HELIUM_V zu finden ist.

Q: Fehlermeldung unsupported version

A: Kommt beim Compilieren eine Fehlermeldung ähnlich
java.lang.UnsupportedClassVersionError: com/lp/util/report/PositionRpt : Unsupported major.minor version 51.0
so bedeutet dies, dass die Java Version des Jaspersoft Studios nicht passt.

Die Clients für Wildfly sind für Java 8 bzw. 11 kompiliert.

Creative Commons Lizenzvertrag


Autor:
Ing. Werner Hehenwarter