DEFINE PRINTER ([logical-printer-name=]n)
|
||||||
[OUTPUT
operand1]
|
||||||
|
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: AT END OF
PAGE
| AT TOP OF
PAGE
| CLOSE
PRINTER
| DISPLAY
| EJECT
| FORMAT
| NEWPAGE
|
PRINT
|
SKIP
|
SUSPEND IDENTICAL SUPPRESS
| WRITE
|
WRITE TITLE
|
WRITE TRAILER
Gehört zur Funktionsgruppe: Erstellen von Ausgabe-Reports
Das Statement DEFINE PRINTER
dient dazu, einer
Report-Nummer einen symbolischen Namen zuzuordnen und die Zuweisung eines
Reports zu einem logischen Bestimmungsort (Drucker) zu steuern. Dies bietet
zusätzliche Flexibilität bei der Erstellung von Ausgaben für verschiedene
logische Drucker-Warteschlangen.
Ist bei der Ausführung dieses Statements der angegebene Drucker
bereits offen, bewirkt dieses Statement implizit, dass der Drucker geschlossen
wird. Um einen Drucker explizit zu schließen, sollten Sie das Statement
CLOSE PRINTER
verwenden.
Weitere Informationen zum DEFINE PRINTER
-Statement,
siehe Unicode- und
Codepage-Unterstützung in der Natural-Programmiersprache,
Abschnitt Natural-Statements.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | A | U | ja | nein | ||||||||||||||
operand2 | C | S | A | U | ja | nein | ||||||||||||||
operand3 | C | S | N | ja | nein | |||||||||||||||
operand4 | C | S | N | P | I | ja | nein |
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
(n)
|
Druckernummer:
Allen im Verlauf einer Session zu benutzenden Druckdateien
muss im Voraus eine Zugriffsmethode zugewiesen werden, und zwar über den
Subparameter Die Druckernummer n kann ein
Wert im Bereich von 0 − 31 sein. Dies ist die Nummer, die auch verwendet werden
soll in einem Die Druckernummer 0 verweist auf den Hardcopy-Drucker.
Einige Zugriffsmethoden unterstützen den Hardcopy-Drucker nicht, z.B.
|
logical-printer-name
|
Logischer Druckername:
Als Option können Sie dem Drucker
n einen logischen Druckernamen
logical-printer-name zuweisen. Dieser Name kann für
die Die Namenskonventionen für
logical-printer-name sind identisch mit denen für
Benutzervariablen. Mehrere logische Namen können ein- und derselben
Druckernummer zugewiesen werden. Im Gegensatz zum Wert des
|
OUTPUT
operand1
|
Druckername:
Als operand1 können Sie einen der folgenden Namen angeben:
Siehe Druckername für zusätzliche Reports und Remote-Ziele weiter unten. Der 8−Byte lange logische Druckername kann zu Anfang über
den Subparameter operand1 kann 1 bis 253 Zeichen
lang sein. Ist operand1 eine Variable, muss die
Länge mindestens 8 Bytes betragen. Sie können entweder einen Druckernamen oder
einen logischen oder physischen Dataset-Namen angeben. Das mögliche Format ist
abhängig von der Betriebssystemumgebung und von der über den Subparameter
Wenn der angegebene Name bereits für eine andere
Druckernummer definiert ist, und dieser Drucker unbenutzt ist, d.h. den Status
geschlossen hat, wird die Druckausgabe zu diesem Drucker weitergeleitet, wenn
der Subparameter Informationen zu betriebssystemabhängigen oder TP-Monitor-abhängigen Drucker-Namenskonventionen befinden sich in folgenden Abschnitten: |
Bei den folgenden Klauseln können Sie Druckersteuer-Informationen angeben, die vom Spooling-System des TP-Monitors bzw. Betriebssystem interpretiert werden sollen. Sie können eine oder mehrere dieser Klauseln angeben, aber jede von diesen nur einmal. | |
PROFILE
operand2
|
Name der
Druckersteuerzeichen-Tabelle:
Bei der Sie definieren die Druckersteuerzeichen-Tabelle über den
Profilparameter Anmerkung: |
CODEPAGE
operand2
|
Name der Codepage:
Mit
|
Bei den im Folgenden aufgeführten Klauseln können Werte für
Parameter des Spooling-Systems vom TP-Monitor angegeben werden. Den
Standardwert dieser Klauseln können Sie mit den entsprechenden Subparametern
des Profilparameters PRINT
setzen (siehe
PRINT
Schlüsselwortparameter für DEFINE PRINTER-Statement).
Wird ein Drucker geschlossen, werden alle Optionen auf ihre
Standardwerte zurückgesetzt. Wenn die Definitionen in einer Natural-Umgebung
nicht eindeutig sind, empfiehlt die Software AG, sie in jedem Modul mittels des
DEFINE PRINTER
-Statements zu setzen.
Syntax-Element | Beschreibung |
---|---|
FORMS
operand2
|
Formular:
Maximale Länge des Operanden: 8 Bytes. Der Standardwert dieser Klausel kann mit dem
Subparameter |
NAME
operand2
|
Listname:
Maximale Länge des Operanden: 8 Bytes. Der Standardwert dieser Klausel kann mit dem
Subparameter |
DISP
operand2
|
Disposition:
Maximale Länge des Operanden: 4 Bytes. Für die |
CLASS
operand2
|
Spool-Klasse:
Maximale Länge des Operanden: 1 Byte. Der Standardwert dieser Klausel kann mit dem
Subparameter |
COPIES
operand3
|
Anzahl der Kopien:
operand3 muss ein
Ganzzahlwert sein. Der Standardwert dieser Klausel kann mit dem Subparameter
Anmerkung: |
PRTY
operand4
|
Listing-Priorität:
Mögliche Werte: 1 − 255. operand4 muss ein Ganzzahlwert sein. Der Standardwert dieser Klausel kann mit dem
Subparameter |
Dieses Abschnitt behandelt folgende Themen:
Für eine mit der Zugriffsmethode
AM=STD
definierte Druckernummer können Sie operand1
benutzen, um einen logischen oder physischen Dataset-Namen anzugeben, der
dieser Druckernummer zugewiesen werden soll.
In diesem Fall kann operand1 1 bis 253 Stellen lang sein und folgenden Wert annehmen:
ein logischer Dataset-Name (DD-Name, 1 bis 8 Stellen);
ein physischer Dataset-Name eines katalogisierten Datasets (1 bis 44 Stellen) oder ein physischer Dataset-Member-Name (1 bis 44 Stellen für den Dataset-Namen plus 1 bis 8 Stellen in Klammern für den Member-Namen);
ein Pfad- und Member-Name einer HFS-Datei (1 bis 253 Stellen) in einer MVS-UNIX-Services-Umgebung;
eine JES-Spoolfile-Klasse
NULLFILE
(bezeichnet ein Dummy-Dataset).
Beispiel:
DEFINE PRINTER (21) OUTPUT 'SYSPRINT'
Das angegebene Dataset mit dem DD-Namen SYSPRINT
muss
zugewiesen worden sein, bevor das DEFINE PRINTER
-Statement
ausgeführt wird. Weitere Informationen entnehmen Sie dem Abschnitt
Zuweisung
und Freigabe von Datasets weiter unten.
Die Zuweisung kann über JCL, CLIST (TSO) oder dynamische Zuweisung
(SVC 99) erfolgen. Für dynamische Zuweisung können Sie die
Programmier-Schnittstelle (API) USR2021N
in der Library
SYSEXT
verwenden.
Der in dem DEFINE PRINTER
-Statement angegebene
Dataset-Name überschreibt den in dem Subparameter
DEST
des
Profilparameters PRINT
angegebenen
Namen.
Optional kann dem Dataset-Namen DDN=
vorangestellt
werden, um anzuzeigen, dass es sich um einen DD-Namen handelt, und um
Namenskonflikte mit zusätzlichen Reports zu vermeiden. Zum Beispiel:
DEFINE PRINTER (22) OUTPUT 'DDN=SOURCE'
Beispiel:
DEFINE PRINTER (23) OUTPUT 'TEST.PRINT.FILE'
Das angegebene Dataset muss in katalogisierter Form vorhanden
sein. Wenn das DEFINE PRINTER
-Statement ausgeführt wird, wird das
Dataset dynamisch über SVC 99 mit dem aktuellen DD-Namen und der JCL-Option
DISP=SHR
zugewiesen. Weitere Informationen entnehmen Sie dem
Abschnitt
Zuweisung
und Freigabe von Datasets weiter unten.
Wenn der Dataset-Name 8 Stellen hat oder kürzer ist und keinen
Punkt (.) enthält, könnte er fälschlich als DD-Name interpretiert werden. Um
dies zu vermeiden, stellen Sie ihm DSN=
voran. Zum Beispiel:
DEFINE PRINTER (22) OUTPUT 'DSN=PRINTXYZ'
Falls das Dataset ein PDS-Member ist, geben Sie den PDS-Member-Namen (1 bis 8 Stellen) in Klammern hinter dem Dataset-Namen (1 bis 44 Stellen) an. Zum Beispiel:
DEFINE PRINTER (4) OUTPUT 'TEST.PRINT.PDS(TEST1)'
Falls das angegebene Member nicht existiert, wird ein neues Member unter diesem Namen angelegt.
Beispiel:
DEFINE PRINTER (14) OUTPUT '/u/nat/rec/test.txt'
Der angegebene Pfadname muss existieren. Wenn das DEFINE
PRINTER
-Statement ausgeführt wird, wird die HFS-Datei dynamisch
zugewiesen. Falls das angegebene Member nicht existiert, wird ein neues Member
unter diesem Namen angelegt.
Bei dynamischer Zuweisung des Datasets werden folgende z/OS-Pfadoptionen verwendet:
PATHOPTS=(OCREAT,OTRUNC,ORDWR) PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP) FILEDATA=TEXT
Wird eine HFS-Datei geschlossen, wird sie automatisch von z/OS
freigegeben (unabhängig vom Wert des Subparameters
FREE
im
Profilparameter PRINT
).
Um ein JES-Spool-Dataset zu erzeugen, geben Sie
SYSOUT=x
an (wobei
x die gewünschte Spoolfile-Klasse ist). Für die
Standard-Spoolfile-Klasse geben Sie SYSOUT=*
an.
Beispiele:
DEFINE PRINTER (10) OUTPUT 'SYSOUT=A' DEFINE PRINTER (12) OUTPUT 'SYSOUT=*'
Um zusätzliche Parameter für die dynamische Zuweisung anzugeben,
verwenden Sie statt des DEFINE PRINTER
-Statements die
Programmierschnittstelle (API) USR2021N in der Library SYSEXT
.
Um ein Dummy-Dataset zuzuweisen, geben Sie NULLFILE
als operand1 an:
DEFINE PRINTER (n) OUTPUT 'NULLFILE'
Dies entspricht der JCL-Definition:
// DD-name DD DUMMY
Wenn das DEFINE PRINTER
-Statement ausgeführt wird und
ein physischer Dataset-Name, eine HFS-Datei, eine Spoolfile-Klasse oder ein
Dummy-Dataset angegeben wurde, wird das entsprechende Dataset dynamisch
zugewiesen. Wenn eine logische Druckdatei bereits geöffnet ist, wird sie
automatisch geschlossen, außer wenn der Subparameter
CLOSE=FIN
des Profilparameters PRINT
angegeben
wurde, wobei dann ein Fehler ausgegeben wird. Außerdem wird ein bestehendes
Dataset mit dem gleichen aktuellen DD-Namen automatisch freigegeben, bevor das
neue Dataset zugewiesen wird.
Um Fehler durch verfrühtes Öffnen von beim Programmstart noch
nicht zugewiesenen Druckdateien zu vermeiden, sollten Druckdateien mit dem
Subparameter OPEN=ACC
(Öffnen bei erstem Zugriff) im Profilparameter
PRINT
definiert werden.
Im Falle einer HFS-Datei oder einer im
PRINT
-Profilparameter
mit Subparameter FREE=ON
definierten Druckdatei wird die Druckdatei automatisch freigegeben, sobald sie
geschlossen worden ist.
Als Alternative für die dynamische Zuweisung und Freigabe von
Datasets steht Ihnen die Programmierschnittstelle (API) USR2021N
in der Library SYSEXT
zur Verfügung. Diese API ermöglicht auch die
Angabe zusätzlicher Parameter für die dynamische Zuweisung.
In Server-Umgebungen kann es zu Fehlern kommen, wenn mehrere
Natural-Sessions versuchen, ein Dataset mit dem gleichen DD-Namen zuzuweisen
oder zu öffnen. Um dies zu vermeiden, geben Sie entweder im Profilparameter
PRINT
den
Subparameter DEST=*
an, oder Sie geben im DEFINE PRINTER
-Statement OUTPUT
'*'
an; Natural generiert dann einen eindeutigen DD-Namen bei der
Zuweisung der physischen Datasets, wenn das erste DEFINE
PRINTER
-Statement für die betreffende Druckdatei ausgeführt wird.
Alle Druckdateien, deren DD-Namen mit CM
anfangen,
werden von allen Sessions in einer Server-Umgebung gemeinsam benutzt. Eine
solche Druckdatei wird von der ersten Session geöffnet, aber erst bei
Beendigung des Servers physisch geschlossen. Weitere Informationen siehe
Abschnitt Natural as a
Server in der
Operations-Dokumentation
Für eine mit der Zugriffsmethode AM=CICS
definierte Druckernummer kann operand1 in
Abhängigkeit vom Subparameter
TYPE
im Profilparameter PRINT
für den
Drucker ein Übergangsdaten- oder Zwischenspeicher-Warteschlangen-Name (1 bis 8
Zeichen) sein. Für TYPE=TD
(Übergangsdaten) werden nur die ersten
4 Zeichen von operand1 berücksichtigt und das
Ausgabemedium für die Übergangsdaten muss vorher für CICS definiert worden
sein.
Weitere Informationen entnehmen Sie auch dem Abschnitt Natural Print and Work Files under CICS im Natural CICS Interface-Teil der TP Monitor Interfaces-Dokumentation.
Wird AM=COMP
gesetzt, kann eine gültige Druckernummer (TID) oder ein logischer Druckername
zugewiesen werden. Beispiel:
DEFINE PRINTER (1) OUTPUT '11' DEFINE PRINTER (2) OUTPUT 'P102'
Wird AM=SMARTS
gesetzt, können Sie einen nicht definierten Druckernamen angeben. Zum
Beispiel:
DEFINE PRINTER (14) OUTPUT '/nat/path/printer' DEFINE PRINTER (14) OUTPUT '/nat/path/printer/file/' DEFINE PRINTER (14) OUTPUT 'printer'
Es ist vom Parameter MOUNT_FS
von SMARTS
abhängig, ob die Datei auf einem SMARTS Portable File System oder auf dem
Native File System residiert. Das erste Element des Pfades (/nat/
)
legt das Zieldateien-System fest.
Wenn die Zeichenkette mit einem Schrägstrich (/) abgeschlossen wird,
wird das letzte Element als Namen der Druckdatei benutzt. Sonst wird der Name
der Datei aus der Benutzer-ID und einer Reihenfolge-Nummer generiert. Wenn die
Zeichenkette nicht mit einem Schrägstrich anfängt, wird der Pfad der Datei aus
der Umgebungsvariable $NAT_PRINT_ROOT
genommen.
Der angegebene Pfadname muss vorhanden sein. Wenn das Statement
DEFINE PRINTER
ausgeführt wird, wird die Datei dynamisch
zugewiesen. Wenn das angegebene Member nicht vorhanden ist, wird ein neues
Member dieses Namens erstellt.
Benutzer von Natural Advanced Facilities können den logischen Namen
jedes vordefinierten logischen Druckerprofils angeben. Dieses logische
Druckerprofil muss nicht zu dem gerade aktiven Benutzerprofil gehören; es darf
jedes in der NATSPOOL
-Datei definierte logische Druckerprofil
sein. Dieses Profil gilt nur während der Ausführung des Programms, das das
DEFINE PRINTER
-Statement enthält.
Weitere Informationen siehe Natural Advanced Facilities-Dokumentation.
Mit den folgenden Namen können Sie standardmäßig zusätzliche Reports und Remote-Ziele zuweisen:
Report | Funktion |
---|---|
BROADCST
|
Ausgabe der Meldungszeile an einen TP-Monitor-Terminal.
Gleiche Funktion wie MESSAGE (siehe unten), außer dass unter
Com-plete die Meldung nicht an den gewünschten Terminal geschickt wird, bis
keine Transaktionen auf diesem Terminal mehr aktiv sind.
|
CCONTROL
|
CCONTROL ist der Name einer bestimmten
Druckersteuerzeichen-Tabelle, die mit dem Drucker
n-1 in Verbindung steht; sie darf nicht geändert
werden. Weitere Informationen entnehmen Sie dem Abschnitt
Printer-Advance
Control Characters in der
Operations-Dokumentation.
|
CONNECT
|
Ausgabe in ein Con-nect-Fach.
Anmerkung für die Natural-Installation: das
|
DUMMY
|
Ausgabe wird gelöscht. |
HARDCOPY
|
Ausgabe an das aktuelle Hardcopy-Gerät. |
INCORE
|
Ausgabe an die NSPF Incore-Datenbank. |
INFOLINE
|
Ausgabe in der Natural-Infoline. Näheres zur Infoline
siehe Terminalkommando %X in der
Terminalkommandos-Dokumentation.
|
MESSAGE
|
Ausgabe der Meldungszeile an einen TP-Monitor-Terminal.
Die ersten 8 Bytes einer Meldung müssen die Ziel-Terminal-ID enthalten. Für
TSO
ist die User-ID anstatt der Terminal-ID erforderlich. Ein Beispiel-Programm mit
Namen MSGSW ist in der Library SYSEXTP vorhanden.
|
SOURCE
|
Ausgabe in den Arbeitsbereich des Natural-Editors. |
WORKPOOL
|
Ausgabe in den Natural-ISPF-Workpool. |
Sie können das Write-to-Spool Feature (siehe Operations-Dokumentation) benutzen, um Daten über einen Remote-JES-Knoten zu leiten und sie an einen Benutzer zu senden oder um sie auf einem Gerät zu drucken, das in der Remote-JES-Umgebung definiert ist.
Beispiel 2 — Definition des Druckernamens für Batch-Umgebung
Beispiel 4 — Benutzung einer Session mit vordefiniertem Drucker
/* PRINTER NAME DEFINITION FOR COM-PLETE * DEFINE PRINTER (1) OUTPUT 'TID100' WRITE (1) 'PRINTED ON PRINTER TID100' END
/* OUTPUT ON 'SYSPRINT' (FOR BATCH ENVIRONMENTS) * DEFINE PRINTER (REPORT1 = 1) OUTPUT 'SYSPRINT' WRITE (REPORT1) 'REPORT 1 PRINTED ON PRINTER SYSPRINT' * /* OUTPUT TO DEFAULT PRINTER DESTINATION /* DEFINED WITH PROFILE PARAMETER 'PRINT', SUBPARAMETER 'DEST' * DEFINE PRINTER (REPORT2 = 2) WRITE (REPORT2) 'REPORT PRINTED TO DESTINATION'
** Example 'DPIEX1': DEFINE PRINTER ************************************************************************ * SET CONTROL 'XI+' /* SWITCH INFOLINE MODE ON SET CONTROL 'XT' /* INFOLINE TOP * DEFINE PRINTER (1) OUTPUT 'INFOLINE' WRITE (1) 'EXECUTING' *PROGRAM 'BY' *INIT-USER WRITE 'TEST OUTPUT' EJECT /* FORCE PHYSICAL I/O * SET CONTROL 'X' /* SWITCH BACK TO NORMAL * END
Ausgabe des Programms DPIEX1
:
EXECUTING DPIEX1 BY HTR Page 1 05-01-13 14:54:33 TEST OUTPUT
** Example 'DPREX1': DEFINE PRINTER ************************************************************************ DEFINE DATA LOCAL 1 EMPL-VIEW VIEW OF EMPLOYEES 2 NAME END-DEFINE * * USE SESSION WITH DEFINED PRINTER 1 * DEFINE PRINTER (INVOICE-LIST=1) OUTPUT 'OUTQ1' LIMIT 5 READ EMPL-VIEW BY NAME WRITE (INVOICE-LIST) NAME END-READ * END