Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Erzeugen von Druckdateien

COBOL-Sprachmittel für Druckdateien

Die Erstellung von Dateien, die auf einem Drucker ausgegeben werden sollen, wird von COBOL2000 durch folgende Sprachmittel unterstützt:

  • die Angabe von symbolischen Gerätenamen in der ASSIGN-Klausel

  • die LINAGE-Klausel in der Dateierklärung

  • Die ADVANCING- und die END-OF-PAGE-Angabe in der WRITE-Anweisung

Der Einsatz dieser Sprachmittel ist im Handbuch „COBOL2000-Sprachbeschreibung“ [1] detailliert beschrieben. Die folgende Tabelle zeigt die Verwendung der symbolischen Gerätenamen in Verbindung mit der WRITE-Anweisung und die Generierung der entsprechenden Vorschubsteuerzeichen:

symbolischer
Gerätename

WRITE-Anweisung
ohne ADVANCING-Angabe

WRITE-Anweisung
mit ADVANCING-Angabe

Kommentar

PRINTER literal

Standardvorschub bei fehlender ADVANCING-Angabe entspricht der Angabe AFTER 1LINE; das erste Zeichen des Datensatzes steht für Benutzerdaten zur Verfügung.

Das erste Zeichen des Datensatzes steht für Benutzerdaten zur Verfügung.

Der Platz für das Vorschubzeichen wird vom Compiler reserviert und ist dem Benutzer nicht zugänglich. Für diesen Druckertyp ist die Angabe der LINAGE-Klausel in der Dateierklärung möglich. Es sind sowohl WRITE-Anweisungen mit als auch ohne ADVANCING-Angabe für eine Datei zulässig.

PRINTER

PRINTER01 -
PRINTER99

wie oben

wie oben

Der Platz für das Vorschubzeichen wird vom Compiler reserviert und ist dem Benutzer nicht zugänglich. Die LINAGE-Klausel ist für diese Datei nicht erlaubt. Die Verwendung einer WRITE-Anweisung mit und ohne ADVANCING-Angabe für ein und dieselbe Datei ist nicht zulässig. Sollte dennoch dieser Fall eintreten, wird für Sätze ohne ADVANCING-Angabe ein WRITE AFTER ADVANCING 1 LINE implizit durchgeführt.

literal

Der Vorschub wird durch das erste Zeichen in jedem logischen Datensatz kontrolliert; der Benutzer muss daher vor der Ausführung jeder solchen WRITE-Anweisung das geeignete Steuerzeichen dort zur Verfügung stellen.

Der Benutzer muss das erste Zeichen eines logischen Datensatzes reservieren; an diese Stelle wird vom Laufzeitsystem zum Programmablauf das Vorschubzeichen eingetragen. Eventuell enthaltene Benutzerdaten werden überschrieben.

Es dürfen WRITE-Anweisungen mit und ohne ADVANCING-Angabe gemischt verwendet werden. In beiden Fällen beginnt jedoch die Benutzerinformation des Druckersatzes erst ab dem zweiten Zeichen des Datensatzes.

Tabelle 20: Verwendung symbolischer Gerätenamen in Verbindung mit der WRITE-Anweisung

Vorschubsteuerzeichen für Druckdateien

Bei allen Druckdateien, deren ASSIGN-Klauseln nicht die Angabe literal enthalten, wird das Steuerbyte bei der Ausführung einer WRITE-Anweisung automatisch mit einem Druckervorschubzeichen versorgt, das den in der ADVANCING-Angabe gewünschten Vorschub bewirkt (siehe die beiden folgenden Tabellen). Bei fehlender
ADVANCING-Angabe wird in diesen Fällen einzeiliger Vorschub angenommen. Der Platz für das Vorschubsteuerzeichen wird vom Compiler reserviert und ist dem Benutzer nicht zugänglich.

Wird für eine Datei in der ASSIGN-Klausel literal angegeben, kann das Steuerbyte auf zwei Arten mit einem Vorschubsteuerzeichen versorgt werden:

  • Eine WRITE-Anweisung mit ADVANCING-Zusatz erzeugt bei ihrer Ausführung ein Druckervorschubzeichen, das den im ADVANCING-Zusatz angegebenen Vorschub bewirkt.

  • Eine WRITE-Anweisung ohne ADVANCING-Zusatz versorgt das Steuerbyte nicht. Das erforderliche Vorschubsteuerzeichen muss explizit dorthin übertragen werden, bevor die Anweisung ausgeführt wird.

    Dies gibt dem Anwender die Möglichkeit, nicht nur mit den vordefinierten Druckervorschubzeichen zu arbeiten, sondern im Programm davon abweichende Vorschubsteuerzeichen zu definieren - z.B. für spezielle Drucker. Welche Zeichen dabei im einzelnen zulässig sind und wie sie bei der Druckausgabe interpretiert werden, kann in den entsprechenden Druckerhandbüchern nachgelesen werden.

    Da Vorschubsteuerzeichen meistens nicht abdruckbar sind, müssen sie im Programm mit Hilfe der SYMBOLIC CHARACTERS-Klausel definiert werden, damit sie in MOVE-Anweisungen angesprochen werden können (siehe dazu Beispiel 9-7).

Je nach Ausgabeziel werden unterschiedliche Vorschubzeichen erzeugt:


Vorschub bei Ausgabe ins BS2000

Vorschub bei Ausgabe ins POSIX-Dateisystem

PRINTER literal

BS2000-Vorschubzeichen gemäß Tabelle 21 und 22

Vorschubzeichen und -zeilen gemäß UNIX-Konventionen

PRINTER

wie oben

wie oben

PRINTER01-99

wie oben

nicht unterstützt

literal

wie oben

BS2000-Vorschubzeichen gem. Tabellen 21 und 22

In den folgenden Tabellen sind Druckervorschubzeichen zusammengestellt:



Vorschub um
Anzahl Zeilen

Steuerzeichen für Vorschub

nach dem
Drucken

vor dem Drucken

sedezimal*)

abgedruckt

1

01

40


(Leerzeichen)

2

02

41


nicht abdruckbar

3

03

42


nicht abdruckbar

.
.

.
.

.
.


.
.

11

0B

4A

c

(CENT)

12

0C

4B

.

(Punkt)

13

0D

4C

<

(kleiner)

14

0E

4D

(

(Klammer)

15

0F

4E

+

(Plus)

Tabelle 21: Druckervorschubzeichen

*)

Die Werte des zweiten Halbbytes sind wegen Hardwareeigenschaften um 1 kleiner als die gewünschte Zeilenzahl.



Vorschub nach
Lochbandkanal*)

Steuerzeichen für Vorschub

nach dem
Drucken

vor dem Drucken

sedezimal

abgedruckt

1

81

C1

A

2

82

C2

B

3

83

C3

C

4

84

C4

D

5

85

C5

E

6

86

C6

F

7

87

C7

G

8

88

C8

H

10

8A

CA

nicht abdruckbar

11

8B

CB

nicht abdruckbar

Tabelle 22: Druckervorschubzeichen für Vorschub nach Lochbandkanälen

*)

Ein Vorschub nach Kanal 9 oder 12 ist nicht möglich, da diese Kanäle nur zur Formularende-Bestimmung dienen.

Damit beliebige sedezimale Werte (und damit auch nicht abdruckbare Vorschubsteuerzeichen) in der COBOL-Übersetzungseinheit angesprochen werden können, gestattet es der SPECIAL-NAMES-Paragraf der ENVIRONMENT DIVISION, ihnen symbolische Namen zuzuordnen (siehe Handbuch „COBOL2000-Sprachbeschreibung“ [1]). Das folgende Beispiel veranschaulicht, wie auf diese Weise Vorschubsteuerzeichen definiert werden können.

Beispiel 9-7

Versorgung des Steuerbytes mit einem sedezimalen Steuerzeichen

Der sedezimale Wert 0A soll in das Steuerbyte eines Drucksatzes übertragen werden, was einen Vorschub von 10 Zeilen nach dem Drucken bewirkt.

IDENTIFICATION DIVISION.
...
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT DRUCKDATEI ASSIGN TO "AUSGABE".
CONFIGURATION SECTION.
...
SPECIAL-NAMES.
   ...
   SYMBOLIC CHARACTERS HEX-0A IS 11 ———————————————————————————— (1)
   ...
DATA DIVISION.
FILE SECTION.
FD DRUCKER-DATEI 
...
01 DRUCK-SATZ.
    02 STEUERBYTE             PIC X. 
    02 DRUCK-ZEILE            PIC X(132). 
   ...
PROCEDURE DIVISION.
   ...
    MOVE "INHALT" TO DRUCK-ZEILE.
    MOVE HEX-0A TO STEUERBYTE.   ——————————————————————————————— (2)
    WRITE DRUCK-SATZ.
   ...

(1)

Dem elften Zeichen des EBCDI-Codes - es entspricht dem sedezimalen Wert 0A - wird der symbolische Name HEX-0A zugeordnet.

(2)

Die MOVE-Anweisung bezieht sich auf diesen symbolischen Namen, um den sedezimalen Wert 0A in das Steuerbyte zu übertragen.

Verwendung von ASA-Vorschubsteuerzeichen

ASA-Vorschubsteuerzeichen können nur in Dateien verwendet werden, deren Zuweisung mit ASSIGN TO literal oder ASSIGN TO datenname erfolgt.
Ferner ist für die zu verarbeitende Datei folgendes ADD-FILE-LINK-Kommando erforderlich:

ADD-FILE-LINK dateiname, REC-FORM=*VAR(*ASA)


Die unter diesen Bedingungen verwendbaren ASA-Steuerzeichen und die korrespondierenden WRITE-Anweisungen sind folgender Tabelle zu entnehmen:

ASA-Vorschubsteuerzeichen

Format der WRITE-Anweisung

+

WRITE ... BEFORE ADVANCING 0

0

WRITE ... AFTER ADVANCING 0 oder 1

-

WRITE ... AFTER ADVANCING 2

1

WRITE ... AFTER ADVANCING PAGE oder C01

2

WRITE ... AFTER ADVANCING C02

3

WRITE ... AFTER ADVANCING C03

4

WRITE ... AFTER ADVANCING C04

5

WRITE ... AFTER ADVANCING C05

6

WRITE ... AFTER ADVANCING C06

7

WRITE ... AFTER ADVANCING C07

8

WRITE ... AFTER ADVANCING C08

A

WRITE ... AFTER ADVANCING C10

B

WRITE ... AFTER ADVANCING C11

Tabelle 23: ASA-Vorschubsteuerzeichen und korrespondierende WRITE-Anweisungen