LaserNet FAQ

Typische Fragen zu LaserNet im Themenbereich iSeries:
-
Wie speichert die LaserNet Engine einen Input: Als Original Spool der iSeries, in verschiedenen Dateien oder als ASCII Datei?
-
Kann bspw. ein deutsches / englisches Datumsformat oder das Wort Rechnung / Invoice abhängig von einem Sprachenschlüssel in der
Konvertierungsphase umgesetzt werden?
-
Wie können einem Ausdruck (bedingte) Zusatztexte hinzugefügt werden?
-
Wie erfolgt die Entscheidung, ob die einseitige oder mehrseitige Vorlage in LaserNet Designer verwendet wird?
-
Wie funktioniert ein Seitenumbruch?
-
Wie kann ich LaserNet automatisch Zwischensummen berechnen oder Seitennummern je Seitenumbruch hinzufügen lassen?
-
Passt sich der Seitenumbruch an, wenn fallweise Barcodes gedruckt werden müssen? Ein Barcode verbraucht ja wesentlich mehr Höhe.
-
Kann LaserNet am Ende einer Seite darauf achten, dass Textblöcke komplett auf die nachfolgende Seite verschoben werden, um sie
nicht zu zerreißen?
-
Können verschiedene Schriftarten/-größen innerhalb einer Zeile verwendet werden?
-
Wird innerhalb eines Feldes ein Zeilenumbruch erzeugt, wenn der Inhalt des Feldes sehr umfangreich ist, z. B. bei einem
Positions-Zusatztext?
-
Kann ein Textblock mit festen Zusatztexten unterdrückt werden, wenn er leer ist (der nachfolgende Text rückt entsprechend nach)?
Errechnet sich dann der Seitenumbruch je nach Andruck (j/n) bzw. Länge des Hinweistextes, der über den Positionen gedruckt werden soll?
-
Ich habe eine bestimmte Anzahl an Feldern, die in unterschiedlicher Anzahl je Spool gedruckt werden. Aber kein Spool beinhaltet jemals die Gesamtzahl aller Felder.
Wie kann ich dann im Formular die Verarbeitung für alle Felder bestimmen, wenn ich keinen Grabfile mit allen notwendigen Feldern erhalte?
Antworten:
-
Wie speichert die LaserNet Engine einen Input: Als Original Spool der iSeries, in verschiedenen Dateien oder als ASCII Datei?
Jeder einzelne Spool von einer iSeries (ob ein- oder mehrseitig) wird als Rohausdruck in genau einer ASCI Datei von LaserNet abgespeichert (gegrabbt).
-
Kann bspw. ein deutsches/englisches Datumsformat oder das Wort Rechnung/Invoice abhängig von einem Sprachenschlüssel in LaserNet umgesetzt werden?
Ja, mit Javascript! An jedes Feld für ein Datenelement im Designer kann ein JavaScript "angehängt" werden. Mit Hilfe des Scriptes kann der Inhalt eines referenzierten Feldes oder auch eines beliebigen anderen Feldes (über den technischen Feldnamen) ausgewertet und sein Inhalt entsprechend manipuliert werden. Zu beachten ist, dass die Information, um welche Sprache es sich handelt, in der Input Datei mitgegeben werden muss.
-
Wie können einem Ausdruck (bedingte) Zusatztexte hinzugefügt werden?
Es gibt verschiedene Möglichkeiten. Die aus unserer Sicht am leichtesten zu pflegende Möglichkeit ist es, mit verschiedenen Zusatztexten
zu arbeiten, die in externen Dateien abgespeichert sind. Diese können jederzeit außerhalb von LaserNet geändert werden, ohne im Developer
etwas ändern zu müssen.
Die Realisierung könnte mit einem einfachen Javascript erfolgen: Das Script "hängt" an einem Feld z. B. für den Kundennamen, welches mit
dieser Information über den Druck der Zusatztexte entscheidet. Im folgenden Beispiel ist das verdeutlicht:
function zusatztexte()
{
var str : String = CurrentRearrange.text
if (str.search("Kundenname_1") > -1)
{
return File.read('c:\\Zahlung_kurz.txt')
}
if (str.search("Kundenname_2") > -1)
{
return File.read('c:\\Zahlung_lang.txt')
}
}
-
Wie erfolgt die Entscheidung, ob die einseitige oder mehrseitige Vorlage in LaserNet Designer verwendet wird?
A) Seite auf Seite orientiertes Formular (1 : 1 Beziehung)
Einstellung im Designer: Single Page
Typischerweise besteht der Input (Spool) aus einer klar abgegrenzten Menge an Informationen, die genau einer Seite im Ausdruck zugeordnet
werden sollen. Die Länge der auszudruckenden Seite wird dafür im Developer definiert.
Ein Beispiel für diesen Sachverhalt stellt ein typischer Warenanhänger dar.
B) Job auf Job orientiertes Formular (1 : n Beziehung)
Einstellung im Designer: Single page, First Page, Middle Page, Last Page
Typischerweise besteht der Input (Spool) aus einer einzigen Seite, die eine unbestimmte Anzahl an Datensätzen enthält. Die Entscheidung
für diese Art der Formulargestaltung setzt bspw. voraus, dass ein Spool Datensätze für Lieferanten mit einer jeweils unbestimmten Anzahl
an Positionen enthält. Das Formular würde also einen Lieferschein abbilden, der aus einer oder mehreren Seiten bestehen kann.
Dafür zählt LaserNet während des Druckbetriebes die Anzahl der Zeilen und berücksichtigt dabei auch Schriftgröße, Schriftart und
Absatzeinzug. Daraus folgt das automatische Setzen von Seitenumbrüchen mit ensprechender Seitennummerierung.
-
Wie funktioniert ein Seitenumbruch?
LaserNet nimmt einen Seitenumbruch in Abhängigkeit von der voreingestellten Seitenlänge automatisch vor. Dabei zerreißt LaserNet nicht
die Feldinhalte (sog. Hurenkind bzw. Schusterjunge). Es sei denn, es wird für das Feld explizit etwas anderes eingestellt
(Allow Widow/Orphan).
Weiterhin besteht die Möglichkeit mit einem Fußzeilen Begrenzer im Developer einen Seitenumbruch anzuzeigen, der weit vor dem Ende der
physikalischen Seitenlänge liegt.
-
Wie kann ich LaserNet automatisch Zwischensummen berechnen oder Seitennummern je Seitenumbruch hinzufügen lassen?
Dies ist sehr einfach mit einem im Developer vorliegenden Script möglich. EFS Technolgy hat für die häufig benötigten Funktionen
bereits fertige Scripte implementiert: SumSubtotal(Feldname_der_Rechnungsbeträge)
Dieses Feld liegt typischerweise im Fußzeilenbereich einer Seite und erfasst automatisch am Ende jeder Seite die
Zwischensumme für alle Summenpreisfelder einzelner Positionen.
Gleichfalls gibt es ein fertiges Script zur Generierung der Seitenzahlen. Es muss nur noch an der gewünschten Stelle im Formular
platziert werden.
-
Passt sich der Seitenumbruch an, wenn fallweise Barcodes gedruckt werden müssen? Ein Barcode verbraucht ja wesentlich mehr Höhe.
Ja, auch das funktioniert in LaserNet automatisch.
Zu beachten ist noch: Wenn ein Barcode gedruckt werden soll, muss der gewünschte Barcode auf dem Druckserver installiert sein.
Der Druckserver ist dadurch bestimmt, dass dort LaserNet installiert und für das Grabben eingerichtet ist.
-
Kann LaserNet am Ende einer Seite darauf achten, dass Textblöcke komplett auf die nachfolgende Seite verschoben werden, um sie
nicht zu zerreißen?
Wenn nicht für ein Feld / Rearrange die Option Allow Widow/Orphan aktiviert ist, erfolgt ein "intelligenter" Umbruch automatisch.
-
Können verschiedene Schriftarten/-größen innerhalb einer Zeile verwendet werden?
Ja, die Formatierung der Textfelder erfolgt im Designer genauso einfach wie bspw. in Winword. Allerdings lassen sich verschiedene
Formatierungen nur feldweise (pro Rearrange) vornehmen. Für diesen Fall müßte über eine Zeile mit mehreren verschiedenen Schriftgrößen
mit entsprechend vielen Feldern gearbeitet werden.
Will man die Zeichensatzwahl noch feiner steuern, muss man sich eines JavaScripts bedienen.
-
Wird innerhalb eines Feldes ein Zeilenumbruch erzeugt, wenn der Inhalt des Feldes sehr umfangreich ist, z. B. bei einem
Positions-Zusatztext?
Falls der Feldinhalt im Produktivbetrieb länger ist als das Feld selbst, wird der überstehende Feldinhalt nicht mit ausgedruckt.
Für ein Feld wird im Produktivbetrieb ein Zeilenumbruch dann automatisch erzeugt werden, wenn im Entwurfsmodus für das Feld manuell eine feste Ausgabebreite / Width für den OUTPUT bestimmt wurde (nicht INPUT).
Zu bemerken bleibt noch, dass zustätzlich mit der Aktivierung der Option "Allow Widows/Orphan" für das betreffende Positionsfeld flexible Seitenumbrüche innerhalb eines Feldes vorgenommen werden können.
-
Kann ein Textblock mit festen Zusatztexten unterdrückt werden, wenn er leer ist (der nachfolgende Text rückt entsprechend nach)?
Errechnet sich dann der Seitenumbruch je nach Andruck (j/n) bzw. Länge des Hinweistextes, der über den Positionen gedruckt werden soll?
Ja, das funktioniert sehr einfach mit Hilfe eines kleinen Scriptes. Bspw. folgendermaßen (dieses Script wird an das Feld/Rearrange für den "Textblock" angehängt):
function hinweistext()
{
if (CurrentRearrange.text != "")
{
return "Hinweistext" + "\r" + CurrentRearrange.text
}
}
Der Seitenumbruch wird von LaserNet automatisch gesteuert.
-
Ich habe eine bestimmte Anzahl an Feldern, die in unterschiedlicher Anzahl je Spool/Grab gedruckt werden. Allerdings beinhaltet kein Spool
jemals die Gesamtzahl aller Felder. Wie kann ich dann im Formular die Verarbeitung für alle Felder bestimmen, wenn ich keinen Grabfile mit
allen notwendigen Feldern erhalte?
Jeder Grabfile kann nachträglich bearbeitet werden. Also sind in einen Grabfile alle Felder von Hand bspw. mit Notepad einzupflegen.
Danach ist im Designer die Ansicht zu aktualisieren. Anschließend ist der Zugriff bzw. die Bearbeitung für sämtliche Felder möglich.
Download der FAQ als PDF-Datei: FAQ-Liste.