Druckformulare

Ein Druckformular definiert ein Layout, das an einen Drucker gesendet wird.

Druckprozess

Der Druckprozess besteht aus zwei Schritten:
  • Zunächst codieren Sie die print-Anweisungen, von denen jede ein Formular zu einem Laufzeitpuffer hinzufügt.
  • Als nächstes fügt die EGL-Laufzeit die Symbole zum Starten einer neuen Seite hinzu, sendet alle gepufferten Formulare an eine Druckeinheit und löscht den Inhalt des Puffers. Diese Services werden unter den folgenden Umständen bereitgestellt:
    • Das Programm führt eine Anweisung close in einem Druckformular aus, das für dieselbe Druckeinheit bestimmt ist.
    • Das Programm befindet sich im segmentierten Modus (siehe Segmentierung in Text-UI-Programmen und UI-Programmen) und führt eine Anweisung converse aus.
    • Das Programm wurde von einem Nicht-EGL-Programm (und Nicht-VisualAge Generator-Programm) aufgerufen und das aufgerufene Programm wird beendet.
    • Das Hauptprogramm in der Ausführungseinheit wird beendet.
    • Die Systemvariable converseVar.printerAssociation (die ein Ausgabeziel für Druckformulare zuweist) wird in einem COBOL-Programm festgelegt, das unter iSeries läuft.
Im Fall einer Ausgabe mit mehreren Formularen müssen Sie die print-Anweisungen in der Reihenfolge aufrufen, in der Sie die Formulare darstellen möchten. Ein Beispiel:
  • Am Anfang der Ausgabe gibt ein fixiertes Formular ein Einkaufsunternehmen und eine Bestellnummer an.
  • In einem nachfolgenden Gleitbereich gibt eine Serie von identisch formatierten, variablen Formularen jeden Artikel der Bestellung für das Unternehmen an.
  • Am Ende der Ausgabe gibt ein fixiertes Formular die Anzahl von Anzeigen oder Seiten an, die erforderlich sind, um bis zum letzten Artikel in der Liste zu blättern.
Drucken Sie diese Informationen, indem Sie eine Serie von print-Anweisungen aufrufen, die jeweils ein Druckformular bedienen. Diese Anweisungen referenzieren die folgenden Formulare in der angezeigten Reihenfolge:
  1. Anfangsformular
  2. Variables Formular, wie von einer Anweisung print dargestellt, die wiederholt in einer Schleife aufgerufen wird
  3. Endformular

Rufen Sie zum Starten einer neuen Seite die Systemfunktion converseLib.pageEject() auf, bevor Sie eine print-Anweisung ausgeben.

Hinweise zu fixierten Formularen

Die folgenden Aussagen treffen auf fixierte Formulare zu:
  • Wenn Sie eine Anweisung print für ein fixiertes Formular ausgeben, dessen Anfangszeile nach der aktuellen Zeile liegt, fügt EGL die Symbole ein, die erforderlich sind, damit die Druckeinheit bei der angegebenen Zeile einsetzt. Entsprechend verhält es sich, wenn Sie eine Druckanweisung für ein fixiertes Formular ausgeben, dessen Anfangszeile vor der aktuellen Zeile liegt. In diesem Fall fügt EGL die Symbole ein, die zum Starten einer neuen Seite erforderlich sind.
  • Falls ein fixiertes Formular einige, aber nicht alle Zeilen in einem anderen fixierten Formular überlagert, fügt EGL automatisch die Symbole ein, die erforderlich sind, um eine neue Seite zu starten, und platziert das zweite fixierte Formular auf der neuen Seite.
  • Falls ein fixiertes Formular alle Zeilen in einem anderen fixierten Formular überlagert, ersetzt EGL das vorhandene Formular, ohne den Rest der Ausgabe aus dem Puffer zu löschen. Wenn Sie die vorhandene Ausgabe beibehalten und das neue Formular auf der nächsten Seite platzieren möchten, rufen Sie die Systemfunktion converseLib.pageEject() auf, bevor Sie die Anweisung print für das neue Formular ausgeben.

Hinweise zu variablen Formularen

Bei der Verwendung von variablen Formularen können die folgenden Fehler auftreten:
  • Sie geben eine Anweisung print aus, um ein variables Formular hinter dem Ende des Gleitbereichs zu platzieren. ODER
  • Sie geben eine Anweisung print aus, die zumindest teilweise einen Gleitbereich mit einem fixierten Formular überlagert, und geben dann eine Anweisung print aus, um einem Gleitbereich ein variables Formular hinzuzufügen.

Das Ergebnis ist in beiden Fällen, dass EGL die Symbole einfügt, die erforderlich sind, um eine neue Seite zu starten, und dass das variable Formular in der ersten Zeile des Gleitbereichs auf der neuen Seite platziert wird. Beispiel: Falls die Seite der weiter oben beschriebenen Bestell- und Artikelausgabe entspricht, enthält die Seite nicht das oberste fixierte Formular.

Weitere Hinweise

Dezimalzeichen und Trennzeichen werden von den Erstellungsdeskriptoroptionen decimalSymbol und separatorSymbol bestimmt. In für COBOL generierten EGL-Programmen, die keine Druckformulare verwenden, stammen die Standardwerte für diese Optionen aus dem Modul mit den sprachabhängigen Optionen, das für Ihre Laufzeitinstallation angegeben ist. Wenn Sie jedoch Druckformulare verwenden, ist der Standardwert für die Option decimalSymbol ein Punkt und der Standardwert für die Option separatorSymbol ein Komma. Falls sich diese Werte nicht für Ihre Arbeitsumgebung eignen, müssen Sie diese Erstellungsdeskriptoroptionen explizit festlegen.

Ziel für Druckausgabe

Wenn EGL eine Anweisung close verarbeitet, um ein Druckformular darzustellen, wird die Ausgabe an einen Drucker oder einen Datensatz gesendet. Sie können das Ziel zu drei verschiedenen Zeitpunkten angeben:
  • Während des Debuggings (weitere Informationen zum EGL-Debugger finden Sie im EGL-Programmiererhandbuch)
  • Während des Generierens, mithilfe eines Ressourcenzuordnungsabschnitts (weitere Informationen finden Sie im EGL-Generierungshandbuch)
  • Während der Laufzeit, mithilfe des aktuellen Werts der Systemvariablen converseVar.printerAssociation (siehe printerAssociation)

Feedback