Dieses Dokument erörtert die Benutzung der Natural Profil- und/oder Session-Parameter, die Sie zum Steuern des Ausgabe-Formats von Feldern verwenden können.
Folgende Themen werden behandelt:
Vorangestellte Zeichen im Unicode-Format — der LCU Parameter
Vorangestellte Zeichen im Unicode-Format — der TCU Parameter
Natural bietet eine Reihe von Profil- und/oder Session-Parametern, mit denen Sie die Art, in der Felder ausgegeben werden, beeinflussen können:
Parameter | Funktion |
---|---|
LC, IC und TC | Mit diesen Session-Parametern können Sie Zeichen angeben, die vor bzw. nach einem Feld bzw. vor einem Feldwert angezeigt werden sollen. |
LCU, ICU und TCU | Mit diesen Session-Parametern können Sie Zeichen im Unicode-Format angeben, die vor bzw. nach einem Feldwert angezeigt werden sollen. |
AL und NL | Mit diesen Session-Parametern können Sie die Ausgabelänge von Feldern vergrößern oder verkleinern. |
DL | Mit diesem Session-Parameter können Sie die Standard-Ausgabelänge für ein alphanumerisches Maskenfeld des Formats U angeben. |
SG | Mit diesem Session-Parameter können Sie bestimmen, ob negative Werte mit oder ohne Minuszeichen angezeigt werden sollen. |
IS | Mit diesem Session-Parameter können Sie die Anzeige von Feldwerten, die mit dem jeweils vorigen Feldwert identisch sind, unterdrücken. |
ZP | Mit diesem Profil- und Session-Parameter können Sie bestimmen,
ob Feldwerte, die 0 sind, angezeigt werden sollen oder
nicht.
|
ES | Mit diesem Session-Parameter können Sie die Anzeige von
Leerzeilen, die von einem DISPLAY - oder
WRITE -Statement erzeugt
werden, unterdrücken.
|
Diese Parameter werden im Folgenden behandelt.
Mit dem Session-Parameter LC
(Leading
Characters) geben Sie an, welche Zeichen unmittelbar vor einem Feld
ausgegeben werden, das von einem DISPLAY
-Statement ausgegeben
wird. Die Breite der Ausgabespalte wird entsprechend vergrößert. Sie können 1
bis 10 Zeichen angeben.
Standardmäßig sind die Werte in alphanumerischen Feldern linksbündig
ausgerichtet und die Werte in numerischen Feldern rechtsbündig. (Mit dem
Session-Parameter AD
können Sie diese
Ausrichtung ändern. Bei einem alphanumerischen Feld erscheint ein
vorangestelltes Zeichen daher unmittelbar vor dem Feldwert; bei einem
numerischen Feld kann es dagegen vorkommen, dass zwischen dem
LC
-Zeichen und dem Feldwert Leerstellen bleiben.
Der LC
-Parameter kann
mit den folgenden Statements verwendet werden:
Er kann dort sowohl auf Statement- als auch auf Elementebene gesetzt werden.
Der Session-Parameter LCU
ist identisch
mit dem Session-Parameter LC
. Der Unterschied
ist, dass alle vorangestellten Zeichen immer im Unicode-Format gespeichert
werden.
Das gibt Ihnen die Möglichkeit, vorangestellte Zeichen mit Zeichen von verschiedenen Codepages gemischt anzugeben, und stellt sicher, dass unabhängig von der installierten Codepage immer das richtige Zeichen angezeigt wird.
Weitere Informationen siehe Unicode and Code Page Support in the Natural Programming Language, Session Parameters, Abschnitt EMU, ICU, LCU, TCU versus EM, IC, LC, TC.
Die Parameter LCU
und ICU
dürfen nicht beide gleichzeitig für ein Feld angegeben werden.
Mit dem Session-Parameter IC
(Insertion
Characters) geben Sie an, welche Zeichen unmittelbar vor einem
Feldwert eingefügt werden, der von einem DISPLAY
-Statement ausgegeben
wird. Sie können 1 bis 10 Zeichen angeben.
Bei einem numerischen Feld werden die Einfügungszeichen unmittelbar vor
die erste signifikante Stelle, die ausgegeben wird, gestellt, und zwar ohne
Leerstellen zwischen dem Einfügungszeichen und dem Feldwert. Bei
alphanumerischen Feldern hat der IC
-Parameter die
gleiche Wirkung wie der LC
-Parameter.
Die Parameter LC und IC dürfen nicht beide gleichzeitig für ein Feld angegeben werden.
Der IC
-Parameter kann
mit den folgenden Statements verwendet werden:
Der IC
-Parameter kann dort sowohl auf Statement-
als auch auf Elementebene gesetzt werden.
Der Session-Parameter ICU
ist identisch
mit dem Session-Parameter IC
. Der Unterschied
ist, dass alle vorangestellten Zeichen immer im Unicode-Format gespeichert
werden.
Das gibt Ihnen die Möglichkeit, Einfügungszeichen mit Zeichen von verschiedenen Codepages gemischt anzugeben, und stellt sicher, dass unabhängig von der installierten Codepage immer das richtige Zeichen angezeigt wird.
Weitere Informationen siehe Unicode and Code Page Support in the Natural Programming Language, Session Parameters, Abschnitt EMU, ICU, LCU, TCU versus EM, IC, LC, TC.
Die Parameter LCU
und ICU
dürfen nicht beide gleichzeitig für ein Feld angegeben werden.
Mit dem Session-Parameter TC
(Trailing
Characters) geben Sie an, welche Zeichen unmittelbar hinter einem Feld
ausgegeben werden, das von einem DISPLAY
-Statement ausgegeben
wird. Die Breite der Ausgabespalte wird entsprechend vergrößert. Sie können 1
bis 10 Zeichen angeben.
Der TC
-Parameter kann mit den folgenden
Statements verwendet werden:
Der TC
-Parameter kann dort sowohl auf Statement-
als auch auf Elementebene gesetzt werden.
Der Session-Parameter TCU
ist identisch
mit dem Session-Parameter TC
. Der Unterschied
ist, dass alle vorangestellten Zeichen immer im Unicode-Format gespeichert
werden.
Das gibt Ihnen die Möglichkeit, Einfügungszeichen mit Zeichen von verschiedenen Codepages gemischt anzugeben, und stellt sicher, dass unabhängig von der installierten Codepage immer das richtige Zeichen angezeigt wird.
Weitere Informationen siehe Unicode and Code Page Support in the Natural Programming Language, Session Parameters, Abschnitt EMU, ICU, LCU, TCU versus EM, IC, LC, TC.
Mit dem Session-Parameter AL
bestimmen Sie die
Ausgabelänge eines alphanumerischen Feldes; mit dem
NL
-Parameter
bestimmen Sie die Ausgabelänge eines numerischen Feldes. Diese Länge
ist die Länge, in der das Feld ausgegeben wird, und kann kürzer oder länger
sein als die tatsächliche Länge des Feldes (die für ein Datenbankfeld im DDM
bzw. für eine Benutzervariable im DEFINE DATA
-Statement
definiert ist).
Beide Parameter können mit den folgenden Statements verwendet werden:
Sie können dort sowohl auf Statement- als auch auf Elementebene gesetzt werden.
Anmerkung:
Wenn eine Editiermaske angegeben ist, hat diese Vorrang vor einer
AL
- bzw.
NL
-Angabe.
Editiermasken werden im Abschnitt Editiermasken - der
EM-Parameter beschrieben.
Mit dem Session-Parameter DL
bestimmen Sie die
Ausgabelänge eines Felds des Formats A oder U, weil die Ausgabelänge
einer Unicode-Zeichenkette doppelt so lang sein kann wie die Zeichenkette und
der Benutzer die Möglichkeit haben muss, die ganze Zeichenkette anzuzeigen. Der
Standardwert ist zum Beispiel die Länge für ein Format/Länge U10, die
Anzeigelänge kann 10 bis 20 sein, während die Standardlänge (ohne DL-Angabe) 10
ist.
Der DL
-Parameter kann mit den folgenden
Statements verwendet werden:
Der DL
-Parameter kann sowohl auf Statement- als
auch auf Elementebene gesetzt werden.
Der Unterschied zwischen den Session-Parametern
AL
und
DL
besteht
darin, dass der AL
-Parameter die Datenlänge eines Feldes
bestimmt, während der DL
-Parameter die Anzahl der
Spalten bestimmt, die zur Anzeige des Feldes auf dem Schirm benutzt werden. Der
Benutzer kann in Einabefeldern "blättern", um den ganzen Inhalt
eines Feldes zu sehen, wenn der mit dem DL
-Parameter
angegebene Wert kleiner als die Länge der Felddaten ist.
Anmerkung:
Der DL
-Parameter ist auch bei Feldern des
Formats A zulässig. Damit kann die Edit-Control-Size
kleiner als der Inhalt eines Feldes gemacht werden.
DEFINE DATA LOCAL 1 #U1 (U10) 1 #U2 (U10) END-DEFINE * #U1 := U'latintxt00' #U2 := U'' * INPUT (AD=M) #U1 #U2 END
Das obige Programm liefert die folgende Ausgabe, in der der Inhalt des
Feldes #U2
unvollständig ist:
#U1 latintxt00 #U2
Wird bei dem Feld #U2
der Session-Parameter
DL
verwendet, dann wird der Inhalt dieses Feldes korrekt
angezeigt.
DEFINE DATA LOCAL 1 #U1 (U10) 1 #U2 (U10) END-DEFINE * #U1 := U'latintxt00' #U2 := U'' * INPUT (AD=M) #U1 #U2 (DL=20) END
Ergebnis:
#U1 latintxt00 #U2
Mit dem Session-Parameter SG
(Sign Position)
bestimmen Sie, ob numerische Felder eine zusätzliche Stelle zur Anzeige des
Vorzeichens erhalten sollen.
Standardmäßig gilt SG=ON
, d.h. numerische Felder erhalten
eine Vorzeichen-Stelle.
Wenn Sie SG=OFF
angeben, werden negative Werte in
numerischen Feldern ohne Minuszeichen (-) ausgegeben.
Der SG
-Parameter kann mit den folgenden
Statements verwendet werden:
Er kann dort sowohl auf Statement- als auch auf Elementebene gesetzt werden.
Anmerkung:
Wenn eine Editiermaske angegeben ist, hat diese Vorrang vor einer
SG
-Angabe.
Editiermasken sind im Abschnitt
Editiermasken - der
EM-Parameter beschrieben.
** Example 'FORMAX03': FORMAT (without FORMAT and compare with FORMAX04) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME 2 SALARY (1:1) 2 BONUS (1:1,1:1) END-DEFINE * READ (5) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME SALARY (1:1) BONUS (1:1,1:1) END-READ END
Ausgabe des Programms FORMAX03
:
Das obige Programm enthält keine Parameterangaben und erzeugt folgende Ausgabe:
Page 1 04-11-11 11:11:11 NAME FIRST-NAME ANNUAL BONUS SALARY -------------------- -------------------- ---------- ---------- JONES VIRGINIA 46000 9000 JONES MARSHA 50000 0 JONES ROBERT 31000 0 JONES LILLY 24000 0 JONES EDWARD 37600 0
In diesem Beispiel werden die Session-Parameter
AL
,
NL
,
LC
,
IC
und
TC
benutzt.
** Example 'FORMAX04': FORMAT (with parameters AL, NL, LC, TC, IC and ** compare with FORMAX03) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME 2 SALARY (1:1) 2 BONUS (1:1,1:1) END-DEFINE * FORMAT AL=10 NL=6 * READ (5) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME (LC=*) FIRST-NAME (TC=*) SALARY (1:1) (IC=$) BONUS (1:1,1:1) (LC=>) END-READ END
Das obige Programm erzeugt folgende Ausgabe. Vergleichen Sie sie mit der Ausgabe des vorigen Programms, um zu sehen, wie sich die einzelnen Parameter auswirken:
Page 1 04-11-11 11:11:11 NAME FIRST-NAME ANNUAL BONUS SALARY ----------- ----------- -------- -------- *JONES VIRGINIA * $46000 > 9000 *JONES MARSHA * $50000 > 0 *JONES ROBERT * $31000 > 0 *JONES LILLY * $24000 > 0 *JONES EDWARD * $37600 > 0
Wie Sie im obigen Beispiel sehen, schließt eine mit einem
AL
- oder
NL
-Parameter
angegebene Ausgabelänge die mit einem LC
-,
IC
- und
TC
-Parameter
angegebenen Zeichen nicht mit ein: die Breite der NAME
-Spalte ist
z.B. 11 Stellen: 10 für den Feldwert (AL=10
) plus 1
vorangestelltes Zeichen.
Die Spalten SALARY
und BONUS
sind jeweils 8
Stellen breit: 6 Stellen für den Feldwert (NL=6
), plus 1
vorangestelltes bzw. eingefügtes Zeichen, plus 1 Vorzeichen-Stelle (da
SG=ON
gilt).
Mit dem Session-Parameter IS
(Identical
Suppress) können Sie die mehrmalige Ausgabe identischer Werte in
aufeinanderfolgenden Zeilen, die von einem WRITE
- oder
DISPLAY
-Statement
erzeugt werden, unterdrücken.
Standardmäßig gilt IS=OFF
. Dies bedeutet, dass identische
Werte angezeigt werden.
Ist IS=ON
gesetzt, wird ein Wert, der identisch mit dem
vorherigen Wert des Feldes ist, nicht angezeigt.
DerIS
-Parameter kann angegeben werden:
in einem FORMAT
-Statement; er gilt dann
für den gesamten Report.
in einem DISPLAY
- oder
WRITE
-Statement, und
zwar sowohl auf Statement- als auch auf Elementebene.
Die Wirkung des Parameters IS=ON
kann für einen
Datensatz mit dem Statement SUSPEND
IDENTICAL SUPPRESS
ausgesetzt werden. Näheres zu diesem
Statement finden Sie in der Statements-Dokumentation.
Vergleichen Sie die Ausgaben der beiden folgenden Beispielprogramme
miteinander, um die Wirkung des IS
-Parameters zu sehen.
Im zweiten Programm wird die Anzeige identischer Werte im Feld
NAME
unterdrückt.
** Example 'FORMAX05': FORMAT (without parameter IS ** and compare with FORMAX06) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME END-DEFINE * READ (3) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME END-READ END
Ausgabe des Programms FORMAX05
:
Page 1 04-11-11 11:11:11 NAME FIRST-NAME -------------------- -------------------- JONES VIRGINIA JONES MARSHA JONES ROBERT
** Example 'FORMAX06': FORMAT (with parameter IS ** and compare with FORMAX05) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME END-DEFINE * FORMAT IS=ON * READ (3) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME END-READ END
Ausgabe des Programms FORMAX06
:
Page 1 04-11-11 11:54:01 NAME FIRST-NAME -------------------- -------------------- JONES VIRGINIA MARSHA ROBERT
Mit dem Profil- und Session-Parameter ZP
(Zero Printing)
bestimmen Sie, wie ein Feldwert, der Null ist, ausgegeben wird.
Standardmäßig gilt ZP=ON
, d.h. für einen Feldwert, der
Null ist, wird eine 0
(bei numerischen Feldern) bzw. der ganze
Feldwert (bei Zeitfeldern) ausgegeben.
Wenn Sie ZP=OFF
angeben, wird ein Feldwert, der Null ist,
gar nicht ausgegeben.
Der ZP
-Parameter kann
angegeben werden:
in einem FORMAT
-Statement; er gilt dann
für den gesamten Report.
in einem DISPLAY
- oder
WRITE
-Statement, und
zwar sowohl auf Statement- als auch auf Elementebene.
Vergleichen Sie die Ausgaben der beiden folgenden
Beispielprogramme miteinander, um
die Wirkung der Parameter ZP
und
ES
zu
sehen.
Mit dem Parameter ES
(Empty Line
Suppression) können Sie die Ausgabe von mit einem
DISPLAY
- oder
WRITE
-Statement
erzeugten Leerzeilen unterdrücken.
Standardmäßig gilt ES=OFF
. Dies bedeutet, dass alle
Zeilen, die Leerwerte enthalten, angezeigt werden.
Wenn Sie ES=ON
angeben, wird eine mit einem
DISPLAY
- oder
WRITE
-Statement
erzeugte Zeile, die nur Leerwerte enthält, unterdrückt. Die Verwendung des
ES
-Parameters empfiehlt sich, wenn bei der Ausgabe von multiplen
Feldern oder Periodengruppen die Ausgabe vieler Leerzeilen zu erwarten ist.
Der ES
-Parameter kann
angegeben werden:
in einem FORMAT
-Statement; er gilt dann
für den gesamten Report.
in einem DISPLAY
- oder
WRITE
-Statement, und
zwar auf Statement-Ebene.
Anmerkung:
Um die Leerwertunterdrückung auch für numerische Werte zu erhalten,
muss für die betreffenden Felder neben ES=ON
auch der Parameter
ZP=OFF
gesetzt werden, was bewirkt, dass Nullwerte in Leerwerte
umgesetzt und dann ebenfalls nicht ausgegeben werden.
Vergleichen Sie die Ausgaben der beiden folgenden Beispielprogramme
miteinander, um die Wirkung der Parameter ZP
und
ES
zu sehen.
** Example 'FORMAX07': FORMAT (without parameter ES and ZP ** and compare with FORMAX08) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME 2 BONUS (1:2,1:1) END-DEFINE * READ (4) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME BONUS (1:2,1:1) END-READ END
Ausgabe des Programms FORMAX07
:
Page 1 04-11-11 11:58:23 NAME FIRST-NAME BONUS -------------------- -------------------- ---------- JONES VIRGINIA 9000 6750 JONES MARSHA 0 0 JONES ROBERT 0 0 JONES LILLY 0 0
** Example 'FORMAX08': FORMAT (with parameters ES and ZP ** and compare with FORMAX07) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME 2 BONUS (1:2,1:1) END-DEFINE * FORMAT ES=ON * READ (4) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME BONUS (1:2,1:1)(ZP=OFF) END-READ END
Ausgabe des Programms FORMAX08
:
Page 1 04-11-11 11:59:09 NAME FIRST-NAME BONUS -------------------- -------------------- ---------- JONES VIRGINIA 9000 6750 JONES MARSHA JONES ROBERT JONES LILLY
Weitere Beispiele für die Parameter LC
,
IC
,
TC
,
AL
,
NL
,
IS
,
ZP
und
ES
und das
SUSPEND IDENTICAL
SUPPRESS
-Statement finden Sie in den folgenden
Beispielprogrammen.