Dieser Abschnitt 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
Eine Übersicht der Natural-Profilparameter, die während der Erstellung der Natural-Reports benutzte Standard-Attribute steuern, finden Sie im Abschnitt Ausgabe-Reports und Arbeitsdateien in der Operations-Dokumentation.
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. |
| 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 (Vorangestellte Zeichen) 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 (Attribut-Definition)
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 (Vorangestellte Unicode-Zeichen) 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 im Vergleich zu 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 (Einfügungszeichen) 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
im Fall von ICU 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- und Codepage-Unterstützung in der Natural-Programmiersprache, Session-Parameter, 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 (Nachgezogene Zeichen) 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
im Fall von TCU 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- und Codepage-Unterstützung in der Natural-Programmiersprache, Session-Parameter, Abschnitt EMU, ICU, LCU, TCU im Vergleich zu EM, IC, LC, TC.
Mit dem Session-Parameter AL bestimmen Sie die Ausgabelänge eines
alphanumerischen Feldes. Mit dem Session-Parameter NL 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.
Anmerkung
Um die Möglichkeiten, die der DL-Parameter bietet, voll nutzen
zu können, müssen Sie das Web I/O Interface benutzen. Wenn Sie eine Terminal-Emulation
verwenden, ist es nicht möglich, in der Anzeige in einem Feld zu "blättern",
wenn der mit dem DL-Parameter angegebene Wert kleiner als die Länge
des Feldinhaltes ist.
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.
Die Benutzung des DL-Parameters mit einer Länge, die kürzer als
die Feldlänge ist, wird nur empfohlen, wenn Sie mit dem Web I/O Interface arbeiten. Wenn
Sie Natural in einer Terminal-Emulation ausführen, ist das Blättern in einem Feld nicht
möglich; Sie haben denselben Effekt wie mit dem AL-Parameter. Wenn
Sie den Feldinhalt ändern, gehen außerdem alle Zeichen verloren, die sich hinter der
Anzeigelänge befinden.
Anmerkung
Der DL-Parameter ist auch bei Feldern des Formats A zulässig.
In Verbindung mit dem Web I/O Interface 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 (Vorzeichen-Stelle) 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 (Unterdrückung identischer Werte) 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 (Anzeige von Nullwerten) 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
(Leerzeilenunterdrückung) 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 im Kapitel Referenzierte
Beispielprogramme.