Funktion
Die PICTURE-Klausel legt die allgemeinen Eigenschaften eines Datenelementes fest und liefert außerdem die Angaben über die Druckaufbereitung.
Format
{PICTURE | PIC} IS maskenzeichenfolge
Syntaxregeln
PIC ist die Abkürzung für PICTURE.
maskenzeichenfolge besteht aus bestimmten erlaubten Zeichenkombinationen aus dem COBOL-Zeichenvorrat. Diese Zeichenkombinationen bestimmen die Kategorie des Datenelementes.
Es gibt 18 Zeichen, die in einer Maskenzeichenfolge verwendet werden können: A, N, Komma (,), X, 9, P, Z,
*
, B, 0, +, Minus (-
), Währungszeichen ($), Schrägstrich (/), S, V, Punkt (.), Kreditzeichen (CR), und Debetzeichen (DB). Die Funktionen jedes dieser Symbole und Zeichen sind unter „Zusammenfassung der Zeichen und Symbole in der Maskenzeichenfolge“ (siehe unten) beschrieben.Die Zeichen S, V, ., CR und DB dürfen in der PICTURE-Klausel nur einmal geschrieben werden.
Eine Ganzzahl, die in Klammern eingeschlossen ist, kann den Symbolen A, N, Komma(,), X, 9, P, Z,
*
, $, B, Schrägstrich (/), 0, Minus (-
) und Plus (+) folgen und bestimmt dann die Anzahl der fortlaufenden Wiederholungen des Symbols. Die Zahl in Klammern muss mindestens 1 sein und darf nicht größer als 131071 sein.Wenigstens eines der Symbole A, N, X, Z, 9,
*
oder wenigstens zwei der Symbole +,-
oder WZ müssen in einer Maskenzeichenfolge vorkommen. -Die maximale Anzahl der Zeichen, die in einer Maskenzeichenfolge geschrieben werden darf, ist 50. Dies begrenzt jedoch nicht die Anzahl der Zeichen des damit beschriebenen Datenelements, die viel größer als 50 sein kann.
Die erlaubten Reihenfolgen der Symbole in einer Maskenzeichenfolge sind in der Tabelle 14 zusammengefasst.
Ein X im Kreuzungspunkt bedeutet: In einer Maskenzeichenfolge darf das in der Spalte angegebene „Zweite Symbol“ an beliebiger Stelle rechts neben dem in der Zeile stehenden „Ersten Symbol“ folgen. Die linke Spalte und die obere Zeile gelten für die Symbole links vom Dezimalpunkt (l). Die rechte Spalte und die untere Zeile gelten für die Symbole rechts vom Dezimalpunkt (r).
ERSTES SYMBOL
ZWEITES SYMBOL
nichtgleitende Einfügesymbole
gleitende Einfügesymbole
andere Symbole
B
0
/
,
.
+
-
+
-
CR
DB
WZ1)
Z
*
Z
*
+
-
+
-
WZ1)
WZ1)
9
A
X
S
V
P
P
Nl
r
l
r
l
r
l
r
l
r
nicht-
gleitende
Einfüge-
symboleB 0 /
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
,
X
X
X
X
X
X
X
X
X
X
X
X
X
X
.
X
X
X
X
X
X
X
X
+
-
l
X
X
X
X
X
X
X
X
X
X
X
X
+
-
r
CR DB
WZ1)
X
X
X
X
X
X
X
X
X
X
X
X
X
gleitende
Einfüge-
symboleZ
*
l
X
X
X
X
X
X
X
X
X
X
Z
*
r
X
X
X
X
X
+
-
l
X
X
X
X
X
X
X
X
+
-
r
X
X
X
WZ1)
l
X
X
X
X
X
X
X
X
X
X
WZ1)
r
X
X
X
X
X
andere
Symbole
9
X
X
X
X
X
X
X
X
X
A X
X
X
X
S
X
X
X
X
V
X
X
X
X
X
X
X
X
X
P
l
X
X
X
X
P
r
X
X
X
X
X
X
X
X
X
N
X
Tabelle 14: Präzedenzreihenfolge der in der Picture-Klausel verwendeten Symbole1) WZ ist die Abkürzung für das Währungszeichen
Die Anzahl der Zeichen in der Maskenzeichenfolge bestimmt die Größe des Datenelements. Die aktuelle Größe des Datenelements im Internspeicher wird jedoch durch die Kombination der PICTURE- und USAGE-Klausel bestimmt (siehe „USAGE-Klausel").
Daten der folgenden Kategorien können mit einer PICTURE-Klausel beschrieben werden:
alphabetisch
alphanumerisch
alphanumerisch druckaufbereitet
national
numerisch
numerisch druckaufbereitet
Es gibt zwei allgemeine Methoden der Druckaufbereitung in der PICTURE-Klausel: durch Einfügen oder durch Unterdrücken und Ersetzen.
Es gibt verschiedene Arten für die Druckaufbereitung durch Einfügen:
einfaches Einfügen
besonderes Einfügen
festes Einfügen
gleitendes Einfügen
Es gibt 2 Arten für die Druckaufbereitung durch Unterdrücken und Ersetzen:
Nullenunterdrückung und Ersetzen durch Leerzeichen
Nullenunterdrückung und Ersetzen durch Stern (
*
).
Allgemeine Regel
Die PICTURE-Klausel ist nur für Datenelemente erlaubt.
Zusammenfassung der Zeichen und Symbole in der Maskenzeichenfolge
Die Zeichen und Symbole, die in einer Maskenzeichenfolge erlaubt sind, haben folgende
Bedeutung:
A | Jedes A in der Maskenzeichenfolge stellt eine Zeichenstelle dar, die nur einen Buchstaben oder ein Leerzeichen enthalten kann. |
B | Jedes B in der Maskenzeichenfolge stellt eine Zeichenstelle dar, in die ein Leerzeichen eingefügt wird. Jedes Leerzeichen wird zur Größe des Datenelements gerechnet. |
N | Jedes N in der Maskenzeichenfolge stellt eine Zeichenstelle dar, die jedes beliebige Zeichen aus dem UTF-16-Zeichensatz enthalten kann. |
P | Das Zeichen P stellt eine numerische Ziffernstelle dar, die zwar in der Anzahl der Ziffernstellen mitzählt, für die jedoch kein Speicherplatz reserviert wird. Gleichzeitig zeigt es die Stellung des gedachten Rechendezimalpunktes an:
In einigen Operationen, die ein Datenelement ansprechen, dessen Maskenzeichenfolge das Zeichen P enthält, wird an Stelle des aktuellen Inhalts des Datenelements sein algebraischer Wert verwendet. Für den algebraischen Wert wird jedes P so behandelt, als würde es eine Null enthalten und als würde der Dezimalpunkt in der angegebenen Stelle stehen.
In allen anderen Operationen werden die mit dem Zeichen P beschriebenen Ziffernstellen ignoriert und nicht bei der Größe des Datenelements mitgerechnet. |
S | Das Zeichen S zeigt das Vorhandensein, nicht jedoch die Darstellung oder Position eines Vorzeichens an. Es muss als erstes Zeichen in der Maskenzeichenfolge angegeben sein. Das Zeichen S wird nicht zur Größe des Datenelements gerechnet, es sei denn, dass eine SIGN-Klausel mit der SEPARATE CHARACTER-Angabe gemacht wurde. |
V | Das Zeichen V zeigt das Vorhandensein eines Rechendezimalpunktes an. Da ein numerisches Datenelement keinen Druckdezimalpunkt enthalten kann, dient der Rechendezimalpunkt dem Compiler nur zur Information hinsichtlich der Skalenausrichtung des Datenelements bei Rechenoperationen. Für das Zeichen V wird niemals Speicherplatz reserviert und es wird deshalb nicht zur Größe des Datenelements gerechnet. Ist der Rechendezimalpunkt das am weitesten rechts stehende Zeichen in der Maskenzeichenfolge, ist das Zeichen V überflüssig. |
X | Jedes X in der Maskenzeichenfolge stellt eine Zeichenstelle dar, die jedes beliebige Zeichen aus dem EBCDIC-Zeichensatz enthalten kann. |
Z | Jedes Z in der Maskenzeichenfolge stellt eine führende numerische Zeichenstelle dar. Enthält eine solche Zeichenstelle eine Null, so wird diese Null durch ein Leerzeichen ersetzt. Jedes Z wird zur Größe des Datenelements gerechnet. |
9 | Jede 9 in der Maskenzeichenfolge stellt eine Zeichenstelle dar, die eine Ziffer enthält. Jede 9 wird zur Größe des Datenelements gerechnet. |
0 | Jede 0 in der Maskenzeichenfolge stellt eine Zeichenstelle dar, in die die Ziffer Null eingefügt wird. Jede 0 wird zur Größe des Datenelements gerechnet. |
/ | Jeder Schrägstrich (/) in der Maskenzeichenfolge stellt eine Zeichenstelle dar, in die ein Schrägstrich eingefügt wird. Jeder Schrägstrich wird zur Größe des Datenelements gerechnet. |
, | Jedes Komma (,) in der Maskenzeichenfolge stellt eine Zeichenstelle dar, in die ein Komma eingefügt wird. Jedes Komma wird zur Größe des Datenelements gerechnet. |
. | Der Punkt (.) in der Maskenzeichenfolge ist ein Druckaufbereitungssymbol und stellt den Dezimalpunkt dar, an dem das Datenelement ausgerichtet wird. Zusätzlich stellt er eine Zeichenstelle dar, in die ein Punkt eingefügt wird. Der Punkt wird zur Größe des Datenelements gerechnet. Bemerkung In einem Programm können die Funktionen von Punkt und Komma vertauscht werden, wenn die DECIMAL-POINT IS COMMA-Klausel im SPECIAL-NAMES-Paragrafen der ENVIRONMENT DIVISION angegeben wurde. Die Regeln für den Punkt gelten dann für das Komma und umgekehrt, wann immer sie in einer Maskenzeichenfolge auftreten. |
+ | Diese Zeichen sind Vorzeichen-Aufbereitungssymbole. Jedes dieser Symbole |
| Dieses Symbol ist ein Schecksicherungssymbol. Jeder Stern ( |
$ | Das Währungszeichen ($) in der Maskenzeichenfolge stellt eine Zeichenstelle dar, in die das Währungszeichen eingefügt wird. Das Währungssymbol in der Maskenzeichenfolge wird entweder durch das Zeichen $ oder durch ein einzelnes Zeichen, das in der CURRENCY SIGN-Klausel im SPECIAL-NAMES-Paragrafen der ENVIRONMENT DIVISION angegeben wird, dargestellt. Das Währungssymbol wird zur Größe des Datenelements gerechnet. |
Alphabetische Datenelemente
Syntaxregeln
Die Maskenzeichenfolge für ein alphabetisches Datenelement darf nur das Symbol A enthalten.
Im Inhalt eines Datenelements darf jede Kombination der 52 Buchstaben des Alphabets und des Leerzeichens angegeben werden.
Beispiel 7-10
Maske
| Wert
|
Alphanumerische Datenelemente Syntaxregeln
Die Maskenzeichenfolge für ein alphanumerisches Datenelement kann bestimmte Kombinationen der folgenden Symbole enthalten: A, X, 9.
Ein alphanumerisches Datenelement wird so behandelt, als würde seine Maskenzei-chenfolge nur X enthalten, wobei jedes X eine Zeichenstelle darstellt.eine Maskenzeichenfolge, die entweder nur aus den Symbolen A oder nur aus 9 besteht, beschreibt kein alphanumerisches Datenelement.
Beispiel 7-11
Der alphanumerische Wert AB1234 könnte durch jede der folgenden Maskenzeichenfolgen dargestellt werden:
PICTURE XXXXXX PICTURE AAXXXX PICTURE AA9999 PICTURE A(2)X(4)
Nationale Datenelemente
Syntaxregel
Die Maskenzeichenfolge für ein nationales Datenelement darf nur das Symbol N enthalten.
Numerische Datenelemente
Es gibt zwei Arten von numerischen Datenelementen: Festpunktdatenelemente und Gleitpunktdatenelemente.
Festpunktdatenelemente
Es gibt drei Arten von Festpunktdatenelemente: externe dezimale, binäre und interne dezimale (siehe „USAGE-Klausel").
Syntaxregeln
Die Maskenzeichenfolge für ein Festpunktdatenelement kann jede gültige Kombination der folgenden Symbole enthalten: 9, V, P, S.
Sie darf 1 bis einschließlich 31 Ziffernpositionen enthalten.
Ist das Symbol „S“ nicht angegeben, darf der Inhalt eines Datenelements eine Kombination der Ziffern 0 bis 9 enthalten.
Ist das Symbol „S“ angegeben, dann darf der Inhalt zusätzlich zu den obigen Ziffern noch +,
-
oder andere Darstellungen des Vorzeichens enthalten (siehe „SYNCHRONIZED-Klausel").
Beispiel 7-12
Gültige Kombinationen für Festpunktdatenelemente:
PICTURE 9999 PICTURE S99 PICTURE S99V9 PICTURE PPP999 PICTURE S999PPP
Beispiel 7-13
Ein Datenelement enthalte die Ziffernfolge 8735:
Für PICTURE P(4)9(4) ist der arithmetische Wert dieses Feldes .00008735.
Für PICTURE 9(4)P(2) ist der arithmetische Wert dieses Feldes 873500.
Gleitpunktdatenelemente
Es gibt zwei Arten von Gleitpunktdatenelemente: interne und externe Gleitpunktdatenelemente (siehe „USAGE-Klausel").
Syntaxregeln
Die Maskenzeichenfolge für ein externes Gleitpunktdatenelement hat folgendes Format:
{ + | - } mantisseE { + | - } exponent
Für die Elemente der Maskenzeichenfolge sind folgende Regeln zu beachten:
Ein positives oder negatives Vorzeichen muss unmittelbar vor der Mantisse und vor dem Exponenten in der Maskenzeichenfolge geschrieben werden.
+ zeigt an, dass ein positives Vorzeichen positive Werte und ein negatives Vorzeichen negative Werte darstellt. - zeigt an, dass ein Leerzeichen positive Werte und ein negatives Vorzeichen negative Werte darstellt. mantisse
Die Mantisse ist der dezimale Teil der Zahl; er besteht aus 1-18 Symbolen 9 (jede 9 stellt ein numerisches Zeichen dar) und einem führenden, eingebetteten oder angehängten Dezimalpunkt (.) oder V. Der Dezimalpunkt zeigt den Druckdezimalpunkt an und das V zeigt den Rechendezimalpunkt an; diese beiden Zeichen schließen sich gegenseitig aus.
E
folgt unmittelbar der Mantisse und zeigt an, dass ein Exponent folgt.
exponent
Der Exponent folgt unmittelbar dem zweiten Vorzeichen und besteht aus zwei aufeinanderfolgenden Symbolen 9.
Für ein internes Gleitpunktdatenelement darf keine PICTURE-Klausel angegeben werden.
Beispiel 7-14 für ein externes Gleitpunktdatenelement
PICTURE -9V99E-99 PICTURE +9999.99E+99 PICTURE -9(16)VE+99 PICTURE +9(16).E-99
Alphanumerisch druckaufbereitete Datenelemente
Syntaxregeln
Die Maskenzeichenfolge für ein alphanumerisch druckaufbereitetes Datenelement kann bestimmte Kombinationen der folgenden Symbole enthalten:A, X, 9, 0, B und / (Schrägstrich).
Eine alphanumerisch druckaufbereitete Maskenzeichenfolge muss mindestens ein A oder X und mindestens ein B oder 0 oder / enthalten.
Nur eine Art der Druckaufbereitung wird für alphanumerisch druckaufbereitete Datenelemente durchgeführt: Druckaufbereitung durch einfaches Einfügen der Zeichen Null (0), Schrägstrich und Leerzeichen (B) (siehe „Druckaufbereitung durch einfaches Einfügen").
Beispiel 7-15
Maske
| Wert
|
Numerisch druckaufbereitete Datenelemente
Syntaxregeln
Die Maskenzeichenfolge für ein numerisch druckaufbereitetes Datenelement kann bestimmte Kombinationen der folgenden Symbole enthalten:
B, / (Schrägstrich), P, V, Z, 0, 9, , (Komma), . (Punkt),*
, +,-
, CR, DB, $.Eine numerisch druckaufbereitete Maskenzeichenfolge enthält mindestens eines der Symbole 0, B, / (Schrägstrich), Z,
*
, +, , (Komma), . (Punkt),-
, CR, DB oder $.Die maximale Anzahl der Ziffernstellen in der Maskenzeichenfolge ist 31.
Die maximale Länge eines numerisch druckaufbereiteten Datenelements ist 127 Zeichen.
Die erlaubten Kombinationen dieser Zeichen werden durch die Druckaufbereitungsregeln und durch die Regeln, welches Zeichen einem anderen vorangehen kann, bestimmt (siehe folgende Syntaxregeln und Tabelle 14).
Druckaufbereitung durch einfaches Einfügen
Syntaxregeln
Die Druckaufbereitung durch einfaches Einfügen wird mit folgenden Druckaufbereitungszeichen durchgeführt:
, (Komma), B (Leerzeichen), 0 (Null), / (Schrägstrich).Die Druckaufbereitungszeichen werden zur Größe des Datenelements gerechnet. Sie stellen die Zeichenstelle innerhalb eines Datenelements dar, in die sie eingefügt werden.
Beispiel 7-16
Datenkategorie | Maskenzeichenfolge des Empfangsfeldes | Übertragene Daten | Druckaufbereitetes Ergebnis |
numerisch- druckaufbereitet |
|
|
|
alphanumerisch- druckaufbereitet |
|
|
|
Druckaufbereitung durch besonderes Einfügen
Syntaxregeln
Die Druckaufbereitung durch besonderes Einfügen benutzt den Punkt (.) als Einfügungszeichen. Zusätzlich zu seiner Funktion als Einfügungszeichen dient der Punkt auch als Dezimal-punkt zur Ausrichtung.
Der Rechendezimalpunkt (dargestellt durch das Zeichen V) und der Druckdezimalpunkt dürfen nicht gemeinsam in einer Maskenzeichenfolge verwendet werden.
Druckaufbereitung durch besonderes Einfügen gilt nur für numerisch druckaufbereitete Datenelemente.
Als Ergebnis der Druckaufbereitung durch besonderes Einfügen tritt das Einfügungszeichen (Dezimalpunkt) an derselben Stelle auf, an der es auch in der Maskenzeichenfolge steht; auf diese Weise ist das Einfügungszeichen der Druckdezimalpunkt. Der Druckdezimalpunkt wird zur Größe des Datenelements gerechnet.
Beispiel 7-17
Maskenzeichenfolge des Empfangsfeldes | Übertragene Daten*) | Druckaufbereitetes Ergebnis |
999.99 999.99999.99999.99 | 123&4 12&341&234&1234 | 123.40 012.34001.23000.12 |
*)& bezeichnet die Stelle des Rechendezimalpunkts, der bei Übertragung nicht erscheint.
Druckaufbereitung durch festes Einfügen
Syntaxregeln
Die Druckaufbereitung durch festes Einfügen benutzt folgende Druckaufbereitungszeichen: + (Plus),
-
(Minus), CR (Kredit), DB (Debet) und $ / € (Währungszeichen).Nur ein Währungszeichen und nur eines der Vorzeichen-Aufbereitungssymbole (+,
-
, CR, DB) dürfen in einer Maskenzeichenfolge angegeben werden.Dem Zeichen für das Währungszeichen darf nur ein Plus oder Minus vorangehen; ansonsten muss es das am weitesten links stehende Zeichen sein.
Werden die Symbole CR oder DB angegeben, müssen sie die am weitesten rechts stehenden Zeichenstellen darstellen.
Werden die Symbole Plus oder Minus angegeben, müssen sie entweder die am weitesten links oder am weitesten rechts stehenden Zeichen sein.
Bei der Druckaufbereitung durch festes Einfügen belegt das Einfügungszeichen dieselbe Zeichenstelle im druckaufbereiteten Datenelement wie in der Maskenzeichenfolge.
Werden die Symbole CR oder DB verwendet, so stellen sie zwei Zeichenstellen dar, die zur Größe des Datenelements gerechnet werden. Alle Druckaufbereitungszeichen zur Druckaufbereitung durch festes Einfügen werden zur Größe des Datenelements gerechnet.
Die Vorzeichen-Aufbereitungssymbole liefern die Ergebnisse abhängig vom Wert des Datenelements (siehe Tabelle 15).
Druckaufbereitungszeichen in der Maskenzeichenfolge | Ergebnis bei Datenelement positiv oder null | Ergebnis bei Datenelement negativ |
+ -CR | + Leerzeichen |
|
Tabelle 15: Vorzeichen-Aufbereitungssymbole und ihre Ergebnisse
Beispiel 7-18
Maskenzeichenfolge | Übertragene Daten*) | Druckaufbereitetes Ergebnis |
+999.99 | +123&45 | +123.45 |
*)& bezeichnet die Stelle des Rechendezimalpunkts, der bei Übertragung nicht erscheint.
Druckaufbereitung durch gleitendes Einfügen
Syntaxregeln
Die Druckaufbereitung durch gleitendes Einfügen benutzt das Währungszeichen und die Vorzeichen-Aufbereitungssymbole (+ oder
-
) als Druckaufbereitungszeichen. Diese Zeichen schließen sich innerhalb einer Maskenzeichenfolge gegenseitig aus.Die Druckaufbereitung durch gleitendes Einfügen wird durch die Angabe einer Folge von mindestens zwei der zugelassenen Einfügungszeichen in der Maskenzeichenfolge erreicht. Diese Zeichen stellen die am weitesten links stehenden numerischen Zeichen dar, in die die Einfügungszeichen gleiten können. Alle einfachen Einfügungszeichen (/, , (Komma), B, 0), die in der Zeichenfolge der gleitenden Einfügungszeichen eingebettet sind oder unmittelbar rechts an diese Zeichenfolge anschließen, sind Teil der gleitenden Zeichenfolge.
In einer Maskenzeichenfolge gibt es nur zwei Darstellungsarten zur Druckaufbereitung durch gleitendes Einfügen:
Einige oder alle führenden numerischen Zeichenstellen links vom Dezimalpunkt werden durch ein Einfügungszeichen dargestellt.
Alle numerischen Zeichenstellen der Maskenzeichenfolge werden durch ein Einfügungszeichen dargestellt.
Das Ergebnis der Druckaufbereitung durch gleitendes Einfügen hängt von der Darstellung in der Maskenzeichenfolge ab:
Werden die Einfügungszeichen nur links vom Dezimalpunkt angegeben, so wird ein einfaches Einfügungszeichen in die Zeichenstelle gebracht, die unmittelbar dem Dezimalpunkt vorangeht oder vor einer von Null verschiedenen Ziffer steht, die als erste von links in der Maskenzeichenfolge auftritt und innerhalb der durch die Einfügungszeichenkette dargestellten Daten liegt. Die Zeichenstellen, die dem Einfügungszeichen vorangehen, werden durch Leerzeichen ersetzt.
Werden alle numerischen Zeichenstellen in der Maskenzeichenfolge dargestellt, so ist das Ergebnis vom Wert des Datenelements abhängig. Ist der Wert des Datenelements Null, so enthält das ganze Datenelement Leerzeichen. Ist der Wert des Datenelements ungleich Null, so ist das Ergebnis dasselbe, als würden die Einfügungszeichen nur links vom Dezimalpunkt auftreten.
Jedes gleitende Einfügungszeichen wird zur Größe des Datenelements gerechnet.
Um ein Abschneiden von Zeichenstellen zu verhindern, muss der Programmierer bei der Bildung der Maskenzeichenfolge des Empfangsfeldes auf Folgendes achten:
Die Mindestgröße der Maskenzeichenfolge muss gleich sein der Anzahl der nicht-gleitenden Einfügungszeichen, die im Empfangsfeld zur Druckaufbereitung dienen, plus einem gleitenden Einfügungszeichen.
Beispiel 7-19
Maskenzeichenfolge des Empfangsfeldes | Übertragene Daten*) | Druckaufbereitetes Ergebnis |
|
|
|
*)& bezeichnet die Stelle des Rechendezimalpunkts, der bei Übertragung nicht erscheint.
Druckaufbereitung durch Nullenunterdrückung und durch Ersetzen
Syntaxregeln
Die Druckaufbereitung durch Unterdrückung von führenden Nullen in numerischen Zeichenstellen benutzt als Unterdrückungszeichen das Zeichen Z oder das Zeichen
*
(Stern) in der Maskenzeichenfolge. Diese Zeichen schließen sich innerhalb einer Maskenzeichenfolge gegenseitig aus. Wird das Zeichen Z verwendet, so ist das Ersetzungszeichen ein Leerzeichen. Wird das Zeichen*
verwendet, so ist das Ersetzungszeichen ein*
.Die Druckaufbereitung durch Nullenunterdrückung und Ersetzen wird durch die Angabe von einem oder mehreren der erlaubten Zeichen (
*
oder Z) in der Maskenzeichenfolge erreicht. Die Zeichen*
oder Z stellen führende numerische Zeichenstellen dar, die mit den Ersetzungszeichen aufgefüllt werden sollen, falls diese Zeichenstellen in dem Datenelement Nullen enthalten. Alle einfachen Einfügungszeichen (/, , (Komma), B, 0), die in diese Zeichenfolge eingebettet sind oder unmittelbar rechts an diese Folge anschließen, sind Teil der Zeichenfolge; jedes dieser einfachen Einfügungszeichen wird wie ein*
oder Z behandelt, bis ein Zeichen mit dem Wert ungleich Null auftritt. Die einfachen Einfügungszeichen (/, , (Komma), B, 0) und die festen Einfügungszeichen ($,+,-
) links von einer solchen Zeichenfolge sind nicht von den Regeln der Nullenunterdrückung/Ersetzen betroffen.In einer Maskenzeichenfolge gibt es zwei Darstellungsarten für Druckaufbereitung durch Nullenunterdrückung:
Einige oder alle führende numerischen Zeichenstellen links vom Dezimalpunkt werden durch Unterdrückungszeichen dargestellt.
Alle numerischen Zeichenstellen in der Maskenzeichenfolge werden durch Unterdrückungszeichen dargestellt.
Das Ergebnis der Druckaufbereitung durch Nullenunterdrückung und Ersetzen hängt von der Darstellung in der Maskenzeichenfolge ab.
Werden die Unterdrückungszeichen nur links vom Dezimalpunkt angegeben, so werden in dem Datenelement alle führenden Nullen, welche in ihren Zeichenstellen durch Unterdrückungszeichen dargestellt sind, durch das Ersetzungszeichen ersetzt. Die Unterdrückung wird beim Auftreten der ersten Ziffer in der Unterdrückungszeichenkette, die ungleich Null ist, oder beim Dezimalpunkt beendet.
Werden alle numerischen Zeichenstellen in der Maskenzeichenfolge durch Unterdrückungszeichen dargestellt und ist der Wert des Datenelements ungleich Null, so ist das Ergebnis dasselbe, als würden die Unterdrückungszeichen nur links vom Dezimalpunkt auftreten. Ist der Inhalt des Datenelements Null und das Unterdrückungszeichen Z, wird das ganze Datenelement durch Leerzeichen ersetzt.Ist der Wert des Datenelements Null und das Unterdrückungszeichen
*
, werden alle Zeichen in dem Datenelement außer dem Dezimalpunkt, durch Sterne ersetzt; in diesem Fall hat die Druckaufbereitung durch Nullenunterdrückung Vorrang gegenüber der BLANK WHEN ZERO-Klausel, falls letztere angegeben wurde.
Jedes Unterdrückungszeichen wird zur Größe des Datenelements gerechnet.
Beispiel 7-20
Maskenzeichenfolge des Empfangsfeldes | Übertragene Daten*) | Druckaufbereitetes Ergebnis |
|
|
|
*)& bezeichnet die Stelle des Rechendezimalpunkts, der bei Übertragung nicht erscheint.