Editiermaske
Mit diesem Session-Parameter können Sie für ein Eingabe- und/oder
Ausgabefeld, das in einem DEFINE
DATA
-, DISPLAY
-,
INPUT
-,
MOVE EDITED
-,
PRINT
-,
PROCESS PAGE
-
oder WRITE
-Statement
verwendet wird, eine Editiermaske definieren.
Der Session-Parameter EM
kann auch bei Feldern mit
Format U (Unicode) verwendet werden, siehe auch
Unicode and
Code Page Support in the Natural Programming Language,
Session
Parameters, EMU
,
ICU
, LCU
,
TCU
im Vergleich zu EM
,
IC
, LC
,
TC
.
Mögliche Werte | Siehe unten. | |
---|---|---|
Standard-Einstellung | Keine | |
Gültige Statements | FORMAT |
Parameter kann dynamisch mit dem FORMAT -Statement
angegeben werden.
|
Parameter kann auf Statement- und/oder Element-Ebene angegeben werden. | ||
MOVE
EDITED |
Parameter kann auf Element-Ebene angegeben werden. | |
Gültiges Kommando | Keines |
Die folgenden Themen werden nachfolgend erörtert:
Siehe auch Editiermasken — der EM-Parameter im Leitfaden zur Programmierung.
Bei Eingabefeldern muss ein Wert genau entsprechend der Editiermaske
eingegeben werden. Um die Editiermaske für die Eingabe sichtbar zu machen,
sollte ein Eingabefeld als modifizierbar (AD=M
) definiert werden.
Für ein Datenbankfeld kann im DDM bereits eine Standard-Editiermaske
definiert sein. Wenn Sie mit dem EM
-Parameter eine
Editiermaske für ein Datenbankfeld angeben, so gilt diese anstelle einer
möglicherweise im DDM für das Feld definierten Standard-Editiermaske.
Geben Sie für ein Feld EM=OFF
an, so wird für das Feld
keine Editiermaske verwendet, auch keine möglicherweise im DDM definierte.
Auf Statement-Ebene eines DISPLAY
-,
FORMAT
-,
INPUT
- oder
WRITE
-Statements kann
keine Editiermaske definiert, sondern allenfalls EM=OFF
gesetzt
werden.
Wenn eine Editiermaske definiert ist, so überschreibt diese etwaige
Einstellungen der Session-Parameter AL
,
NL
and
SG
.
Diese Schreibweise gilt nur für die Zeichen 9
,
H
, X
und Z
, mit denen bei numerischen
(9,Z
), hexadezimalen (H
) und alphanumerischen
(X
) Editiermasken die signifikanten Stellen dargestellt werden.
Der Unterschied zwischen 9
und Z
ist im Abschnitt
Editiermasken
für numerische Felder weiter unten beschrieben.
DISPLAY AA(EM=OFF) AB(EM=XX.XX) WRITE SALARY (EM=ZZZ,ZZ9)
Lange Editiermasken können in Form einer Kurzschreibweise definiert werden. Die folgenden Beispiele zeigen die für numerische, hexadezimale und alphanumerische Editiermasken verwendbare Kurzschreibweise.
EM=9(4)-9(5) is equivalent to: EM=9999-99999 EM=H(10) is equivalent to: EM=HHHHHHHHHH EM=X(6)..X(3) is equivalent to: EM=XXXXXX..XXX
Leerzeichen innerhalb einer Editiermaske lassen sich durch das Zeichen
auf Ihrer Tastatur darstellen, das in Hexadezimalcode H'20'
(ASCII) bzw. H'5F'
(EBCDIC) entspricht, d.h. das Zeichen
^
(oder ¬
).
Wenn Sie für ein Feld keine Editiermaske angeben, erhält das Feld entsprechend seinem Format eine Standard-Editiermaske:
Feldformat | Standard-Editiermaske |
---|---|
A | X |
B | H |
N, P, I | Z9 |
F | wissenschaftliche Darstellung |
D | abhängig vom Standard-Datumsformat (wie mit dem Profilparameter
DTFORM gesetzt)
|
T | HH:II:SS |
L | Leerzeichen / X |
Eine für Felder mit Format N, P, I oder F definierte Editiermaske muss
mindestens eine 9
oder ein Z
enthalten.
Enthält sie mehr "9er" und "Zs" als der Feldwert lang ist, wird die Anzahl der Ausgabestellen in der Editiermaske der Anzahl der für den Feldwert definierten Stellen angepasst.
Hat die Editiermaske weniger signifikante Stellen als der Feldwert, wird der Feldwert um die entsprechende Anzahl der Stellen vor bzw. nach dem Komma verkürzt ausgegeben.
Die folgenden Themen werden nachfolgend erörtert:
Zeichen | Funktion |
---|---|
9 |
Auszugebende Stelle (eine Stelle des Feldwertes). |
. (period)
|
Ein Punkt, als erstes Zeichen verwendet, stellt ein Komma
(Dezimalpunkt) dar und ist signifikant. Nachfolgende Punkte werden als Literale
behandelt.
Anmerkung: |
Z |
Nullunterdrückung bei vorangestellten Nullen. Dies gilt
standardmäßig für numerische Felder. Zur gleitenden Nullunterdrückung kann das
Z mehrmals angegeben werden. Rechts vom Komma (Dezimalpunkt) darf
kein Z stehen. Ein Nullwert kann unter Einbeziehung aller
Z s in der Editiermaske als lauter Leerzeichen ausgegeben werden
(siehe auch Session-Parameter ZP ).
|
Vor den Neunern oder Z
s können eins oder mehrere andere
Zeichen stehen.
Wenn das erste Zeichen vor den Neunern oder Z
s ein
+
, −
, S
oder N
ist, kann
ein Vorzeichen angezeigt werden:
Zeichen | Funktion |
---|---|
+ |
Ein gleitendes Vorzeichen, das vor/nach der Zahl ausgegeben
werden soll. Das Zeichen wird je nach Wert der Zahl als + oder
− generiert.
|
- |
Ein gleitendes Minus-Vorzeichen, das vor/nach der Zahl ausgegeben werden soll, wenn die Zahl negativ ist. |
S |
Ein Vorzeichen, das vor dem Feld ausgegeben werden soll. Das
Vorzeichen wird je nach Wert der Zahl als + oder −
generiert.
|
N |
Ein Minus-Vorzeichen, das vor dem Feld ausgegeben werden soll, wenn der Feldwert negativ ist. |
Eine beliebige Anzahl von führenden Literalen kann vor der ersten
anzeigbaren Stelle erscheinen (wie durch Z oder 9
angezeigt).
Diese müssen auf ein Vorzeichen folgen. Wenn kein Vorzeichen vorhanden ist, und
das erste führende Literal ist +
, -
, S
oder N
, muss es in Apostrophen stehen. Wenn ein führendes Literal
H
, X
, Z
oder 9
ist, muss es
in Apostrophen stehen.
Das zuerst angegebene führende Literal erscheint nur in der Ausgabe,
wenn der Wert führende Nullen enthält und die Editermaske mit Z
definiert ist (führende Nullwertunterdrückung). Dieses Zeichen wird dann als
Füllzeichen benutzt, das anstatt eines Leerzeichens für führende Nullen
angezeigt wird. Nachfolgende führende Literale werden so angezeigt, wie sie
eingegeben werden.
Es können auch literale Einschubzeichen und nachgestellte Zeichen
benutzt werden. Das Symbol (^
) kann zur Darstellung eines
vorangestellten, eingefügten oder nachgestellten Leerzeichens verwendet werden.
Durch Setzen von signifikanten Zeichen (9
, H
,
Z
, X
) in Apostrophen ist es möglich, vorangestellte,
eingefügte und nachgestellte Zeichenketten zu haben.
Nicht signifikante Editiermasken-Zeichen müssen nicht in Apostrophen stehen. Innerhalb derselben Editiermasken-Notation ist es möglich, Gruppen von vorangestellten Zeichenketten, Einschubzeichen und/oder nachfolgenden Zeichen zu haben, von denen einige in Apostrophen stehen und andere nicht.
Ein nachfolgendes Vorzeichen wird durch ein +
oder
-
als letztes Zeichen der Editiermaske angegeben. Ein
+
bewirkt, dass das Vorzeichen je nach Feldwert entweder als
+
oder -
ausgegeben wird; ein -
bewirkt,
dass bei einem positiven Feldwert ein Leerzeichen und bei einem negativen
Feldwert ein -
ausgegeben wird. Ist für eine Editiermaske ein
vorangestelltes und ein nachgestelltes Vorzeichen definiert, werden beide
ausgegeben.
Die folgende Tabelle zeigt in der oberen Zeile die Werte numerischer Felder (Format N), wie sie ohne Editiermaske ausgegeben würden, und darunter die unter Verwendung der verschiedenen Editiermasken ausgegebene Form:
Wert | 0000.03 (N4.2) |
-0054 (N4) |
+0087 (N4) |
0962 (N4) |
1830 (N4) |
---|---|---|---|---|---|
Editiermaske | |||||
EM=9.9 |
0.0 |
4. |
7. |
2. |
0. |
EM=99 |
00 |
54 |
87 |
62 |
30 |
EM=S99 |
+00 |
-54 |
+87 |
+62 |
+30 |
EM=+Z9 |
+0 |
-54 |
+87 |
+62 |
+30 |
EM=-9.99 |
0.03 |
-4. |
7. |
2. |
0. |
EM=N9 |
0 |
-4 |
7 |
2 |
0 |
EM=*9.99 |
0.03 |
4. |
7. |
2. |
0. |
EM=Z99 |
00 |
54 |
87 |
962 |
830 |
EM=*DMZZ9.9 |
DM**0.0 |
DM*54. |
DM*87. |
DM962. |
DM830. |
EM=999+ |
000+ |
054- |
087+ |
962+ |
830+ |
EM=999- |
000 |
054- |
087 |
962 |
830 |
IC=$ EM=ZZZ.99 |
$.03 |
$54. |
$87. |
$962. |
$830. |
EM=H(6) |
|||||
- ASCII: | 303030303033 |
30303574 |
30303837 |
30393632 |
31383330 |
- EBCDIC: | F0F0F0F0F0F3 |
F0F0F5D4 |
F0F0F8F7 |
F0F9F6F2 |
F1F8F3F0 |
Durch Kombination von Editiermasken mit den Parametern
IC
und
TC
ist es
bei einem DISPLAY
-Statement möglich,
negative Zahlen in verschiedenen Formen auszugeben.
Für mit Format “A” definierte Felder kann eine alphanumerische
Editiermaske definiert werden; sie muss mindestens ein “X” enthalten; jedes
X
steht für ein auszugebendes Zeichen. Ein H
als
erstes Zeichen kennzeichnet eine
hexadezimale
Editiermaske. Ein Leerzeichen wird durch ein Circumflex
(^
) dargestellt.
Alle anderen Zeichen — außer Klammern — können als vorangestellte,
eingeschobene oder nachgestellte Zeichen verwendet werden, wobei diese Zeichen
wahlweise durch Apostrophe eingegrenzt werden können oder nicht. Sollen die
Zeichen X
, eine abschließende runde Klammer ()
) oder
ein Anführungszeichen ("
) als nichtsignifikante Einschubzeichen
verwendet werden, müssen sie in Apostrophen angegeben werden.
Werden dem ersten signifikanten X
Zeichen vorangestellt,
wird das erste dieser Zeichen nicht ausgegeben, sondern als Füllzeichen
benutzt, und es tritt an die Stelle aller führenden Leerzeichen im
alphanumerischen Ausgabefeld.
DEFINE DATA LOCAL 1 #X (A4) INIT <' 34'> END-DEFINE WRITE #X (EM=*A:X:) 6X #X (EM=*A:XX:) 6X #X (EM=*A:XXX:) 6X #X (EM=*A:XXXX:) 6X #X (EM=1234XXXX5678) END
A:*: A:**: A:**3: A:**34: 23411345678
Zeichen, die unmittelbar auf das letzte signifikante X
folgen, werden ausgegeben.
Ist die Editiermaske kürzer als das Feld, wird die Anzahl der ausgegebenen Stellen auf die Länge der Editiermaske gekürzt.
Ist die Editiermaske länger als das Feld, wird die Anzahl der ausgegebenen Stellen bei der ersten überstehenden Stelle abgeschnitten.
DEFINE DATA LOCAL 1 #TEXT (A4) INIT <'BLUE'> END-DEFINE WRITE #TEXT (EM=X-X-X) WRITE #TEXT (EM=X-X-X-X-X) |
displays as 'B-L-U' .. only three bytes of field displayed displays as 'B-L-U-E-' .. mask definition was truncated to (EM=X-X-X-X-) |
Das folgende Programm definiert Editiermasken für ein Feld mit
Format/Länge A4, das den Wert BLUE
enthält:
** Example 'EMMASK1': Edit mask ************************************************************************ DEFINE DATA LOCAL 1 #TEXT (A4) END-DEFINE * ASSIGN #TEXT = 'BLUE' WRITE NOTITLE 'MASK 1:' 5X #TEXT (EM=X.X.X.X) / 'MASK 2:' 5X #TEXT (EM=X^X^X^X) / 'MASK 3:' 5X #TEXT (EM=X--X--X) / 'MASK 4:' 5X #TEXT (EM=X-X-X-X-X-X) / 'MASK 5:' 5X #TEXT (EM=X' 'X' 'X' 'X) / 'MASK 6:' 5X #TEXT (EM=XX....XXX) / 'MASK 7:' 5X #TEXT (EM=1234XXXX) END
Ausgabe des Programms EMMASK1
:
MASK 1: B.L.U.E MASK 2: B L U E MASK 3: B--L--U MASK 4: B-L-U-E- MASK 5: B L U E MASK 6: BL....UE MASK 7: 234BLUE
Editiermasken für binäre Felder können mittels der Notation
X
oder H
definiert werden. Für binäre Felder wird die
Notation X
unterstützt, als ob H
anstelle von
X
angegeben worden wäre.
Wird als erstes Zeichen einer Editiermaske ein H
angegeben,
so wird der Wert eines alphanumerischen oder numerischen Feldes in
hexadezimaler Form ausgegeben. Jedes H
steht für zwei
Hexadezimalstellen, die jeweils einem numerischen/alphanumerischen Byte im
Source-Feld entsprechen.
Alle anderen Zeichen können als Einschubzeichen oder nachgestellte Zeichen verwendet werden. Ist die Editiermaske kürzer als das Feld, wird der Feldwert entsprechend verkürzt ausgegeben. Ist das Feld kürzer als die Editiermaske, wird die Editiermaske der Feldlänge entsprechend verkürzt ausgegeben.
Einschubzeichen oder nachgestellte Zeichen können wahlweise durch Apostrophe eingegrenzt werden.
Alle mit einer hexadezimalen Editiermaske angezeigten Felder werden als alphanumerische Felder behandelt. Ist die Editiermaske kürzer als das Feld, werden daher alle numerischen oder alphanumerischen Stellen von links nach rechts ohne Berücksichtigung von Dezimalstellen ausgegeben.
Wenn eine hexadezimale Editiermaske als eine Eingabeeditiermaske benutzt
wird, werden alle Zeichen 0-9
, a-f,
,
A-F
, Leerzeichen und die hexadezimale Null als eine hexadezimale
Ziffer akzeptiert.
Anmerkung:
Leerzeichen und die hexadezimale Null werden als 0
und
ein Kleinbuchstabe (a-f
) als Großbuchstabe angesehen.
Die folgenden Tabellen zeigen hexadezimale Editiermasken mit
Ergebnissen aus den ursprünglichen Feldern und über jeder Spalte angezeigten
Werten. Alle numerischen Werte (-10
, +10
,
01
), für die Editiermasken gelten, stammen aus im Format N2
definierten Feldern. Der alphanumerische Wert AB
stammt aus einem
mit Format/Länge A2 definierten Feld.
Wert => | AB |
-10 |
+10 |
01 |
EM=HH |
4142 |
3170 |
3130 |
3031 |
EM=H^H |
41 42 |
31 70 |
31 30 |
30 31 |
EM=HH^H |
4142 |
3170 |
3130 |
3031 |
EM=H-H |
41-42 |
31-70 |
31-30 |
30-31 |
EM=H |
41 |
31 |
31 |
30 |
Wert => | AB |
-10 |
+10 |
01 |
EM=HH |
C1C2 |
F1D0 |
F1F0 |
F0F1 |
EM=H:H |
C1 C2 |
F1 D0 |
F1 F0 |
F0 F1 |
EM=HH:H |
C1C2 |
F1D0 |
F1F0 |
F0F1 |
EM=H-H |
C1-C2 |
F1-D0 |
F1-F0 |
F0-F1 |
EM=H |
C1 |
F1 |
F1 |
F0 |
** Example 'EMMASK2': Edit mask ************************************************************************ DEFINE DATA LOCAL 1 #TEXT1 (A2) 1 #TEXT2 (N2) END-DEFINE * ASSIGN #TEXT1 = 'AB' ASSIGN #TEXT2 = 10 * WRITE NOTITLE 'MASK (EM=HH) :' 18T #TEXT1 (EM=HH) 30T #TEXT2 (EM=HH) / 'MASK (EM=H^H) :' 18T #TEXT1 (EM=H^H) 30T #TEXT2 (EM=H^H) / 'MASK (EM=HH^H):' 18T #TEXT1 (EM=HH^H) 30T #TEXT2 (EM=HH^H) / 'MASK (EM=H-H) :' 18T #TEXT1 (EM=H-H) 30T #TEXT2 (EM=H-H) / 'MASK (EM=H) :' 18T #TEXT1 (EM=H) 30T #TEXT2 (EM=H) END
Ausgabe des Programms EMMASK2
(ASCII):
MASK (EM=HH) : 4142 3130 MASK (EM=H^H) : 41 42 31 30 MASK (EM=HH^H): 4142 3130 MASK (EM=H-H) : 41-42 31-30 MASK (EM=H) : 41 31
Ausgabe des Programms EMMASK2
(EBCDIC):
MASK (EM=HH) : C1C2 F1F0 MASK (EM=H^H) : C1 C2 F1 F0 MASK (EM=HH^H): C1C2 F1F0 MASK (EM=H-H) : C1-C2 F1-F0 MASK (EM=H) : C1 F1
Zur Definition von Editiermasken für Felder, die mit dem Format D (Datumsfeld) oder T (= Time; Zeitfeld) definiert sind, können die in den folgenden Abschnitten beschriebenen Zeichen verwendet werden:
Zeichen | Bedeutung |
---|---|
DD |
Tag (Day). |
ZD |
Tag mit Nullwertunterdrückung. |
MM |
Monat. |
ZM |
Monat mit Nullwertunterdrückung. |
YYYY |
Jahr (Year), vierstellig (siehe Abschnitt Hinweise für Eingabe-Editiermaske). |
YY |
Jahr, zweistellig (siehe Abschnitt Hinweise für Eingabe-Editiermaske). |
Y |
Jahr, einstellig. Darf nicht für Eingabefelder verwendet werden. |
WW |
Woche (siehe die Abschnitte Hinweise für Eingabe-Editiermaske und Hinweise für Wochenanzeige in Ausgabe-Editiermaske). |
ZW |
Woche mit Nullwertunterdrückung (siehe die Abschnitte Hinweise für Eingabe- Editiermaske und Hinweise für Wochenanzeige in Ausgabe-Editiermaske). |
JJJ |
Julianischer Tag. |
ZZJ |
Julianischer Tag mit Nullwertunterdrückung. |
NN... oder
N(n) |
Name des Wochentages (sprachabhängig). Die Maximallänge wird
durch die Anzahl der N s bzw. durch n
bestimmt. Ist der Name länger als die Maximallänge, wird er abgeschnitten; ist
er kürzer, wird seine tatsächliche Länge genommen.
|
O |
Nummer des Wochentags.
Ob Montag oder Sonntag als erster Wochentag genommen wird, hängt
vom Profilparameter Ist Ist |
LL... oder
L(n) |
Name des Monats (sprachabhängig).
Die Maximallänge wird durch die Anzahl der Ist der Name länger als die Maximallänge, wird er abgeschnitten; ist er kürzer, wird seine tatsächliche Länge genommen. |
R |
Jahr in römischen Ziffern (maximal 13 Stellen).
Darf für Eingabefelder nicht benutzt werden. Die obere Grenze für anzeigbare Jahrwerte ist 2887. |
Für Eingabe-/Ausgabe-Editiermasken dürfen Sie die folgenden Zeichen nicht verwenden:
Text | Zeichen | ||||
---|---|---|---|---|---|
Monat | mit | Monatsnamen | MM oder ZM |
mit | LL oder
L(n) |
Tagesname | mit | Wochentag | NN oder
N(n) |
mit | O |
Für Eingabe-Editiermasken dürfen Sie die folgenden Zeichen nicht verwenden:
Text | Zeichen | ||||
---|---|---|---|---|---|
1-stelliges Jahr | und auch nicht | ein Jahr in römischen Ziffern | Y |
und auch nicht | R |
Day | ohne | Monat oder Monatsnamen | DD oder ZD |
ohne | MM oder ZM oder
LL oder L(n) |
Woche | ohne | Jahr | WW oder ZW |
ohne | YYYY oder YY |
Monat | ohne | Jahr | MM oder ZM |
ohne | YYYY oder YY |
Julian. Tag | ohne | Jahr | JJJ oder ZZJ |
ohne | YYYY oder YY |
Tagesname | ohne | Woche | NN oder
N(n) |
ohne | WW oder ZW |
Wochentag | ohne | Woche | O |
ohne | WW oder ZW |
Julian. Tag | mit | Monat | JJJ oder ZZJ |
mit | MM oder ZM |
Julian. Tag | mit | Woche | JJJ oder ZZJ |
mit | WW oder ZW |
Monat | mit | Woche | MM oder ZM |
mit | WW oder ZW |
Die gültigen Jahreswerte (YYYY
) sind 1582 -
2699
.
Wird der Profilparameter MAXYEAR
auf"9999" gesetzt, ist der Bereich der gültigen
Jahreswerte 1582 - 9999
.
Wird in einer Eingabe-Editiermaske nur das Jahr (YY
oder
YYYY
) angegeben, aber nicht Monat und Tag, werden die Werte für
Monat und Tag jeweils auf 01
gesetzt. Werden in einer
Eingabe-Editiermaske nur Jahr (YY
oder YYYY
) und
Monat (MM
) angegeben, aber kein Tag, wird der Wert für Tag auf
01
gesetzt.
Bei einer 2-stelligen Jahresangabe (YY
) ist das zum Füllen
der Jahresdarstellung benutzte Jahrhundert standardmäßig das aktuelle
Jahrhundert. Dies gilt aber nicht, wenn ein Sliding Window oder Fixed Window
definiert ist. Weitere Einzelheiten entnehmen Sie dem Profilparameter
YSLW
.
Wird eine Woche (WW
oder ZW
) aber kein
Wochentag (O
) oder Tagesname (NN...
) angegeben, geht
man vom ersten Wochentag aus.
Wenn DTFORM=U
(USA-Format) gesetzt ist, beginnt die Woche
am Sonntag, wohingegen bei allen anderen
DTFORM
-Einstellungen der erste Wochentag der Montag ist.
Ob eine Woche die 52./53. Woche des alten oder die 1. Woche des neuen Jahres
ist, hängt davon ab, welches Jahr mehr Wochentage enthält. Mit anderen Worten,
wenn der Donnerstag (Mittwoch bei DTFORM=U
) dieser Woche im alten
Jahr liegt, gehört die Woche zum alten Jahr; liegt er im neuen Jahr, gehört die
Woche zum neuen Jahr.
Wenn sich eine Darstellung der Woche (WW
oder
ZW
) und des Jahres (YYYY
oder YY
oder
Y
) auf derselben Editiermaske befinden, entspricht die Anzeige des
Jahres stets der Woche, ungeachtet des Jahres in dem zugrundeliegenden
Datumsfeld.
DEFINE DATA LOCAL 1 D (D) END-DEFINE MOVE EDITED '31-12-2003' TO D(EM=DD-MM-YYYY) DISPLAY D(EM=DD-MM-YYYY_N(10)) D(EM=DD-MM-YYYY/WW)
Obwohl das zugrundeliegende Datum der 31. Dezember 2003 ist, wenn die
Woche WW
in der Editiermaske enthalten ist, wird es wie folgt
angezeigt:
D D -------------------- ------------- 31-12-2003_Wednesday 31-12-2004/01
Zeichen | Bedeutung |
---|---|
T |
Zehntelsekunden (Tenths of a second). |
SS |
Sekunden. |
ZS |
Sekunden mit Nullwertunterdrückung. |
II |
Minuten. |
ZI |
Minuten mit Nullwertunterdrückung. |
HH |
Stunden. |
ZH |
Stunden mit Nullwertunterdrückung. |
AP |
AM/PM-Element (englische Zeitangabe: AM = vormittags, PM = nachmittags). |
** Example 'EMDATI': Edit mask for date and time variables ************************************************************************ * WRITE NOTITLE 'DATE INTERNAL :' *DATX (DF=L) / ' :' *DATX (EM=N(9)' 'ZW.'WEEK 'YYYY) / ' :' *DATX (EM=ZZJ'.DAY 'YYYY) / ' ROMAN :' *DATX (EM=R) / ' AMERICAN :' *DATX (EM=MM/DD/YYYY) 12X 'OR ' *DAT4U / ' JULIAN :' *DATX (EM=YYYYJJJ) 15X 'OR ' *DAT4J / ' GREGORIAN:' *DATX (EM=ZD.''L(10)''YYYY) 5X 'OR ' *DATG /// * 'TIME INTERNAL :' *TIMX 14X 'OR ' *TIME / ' :' *TIMX (EM=HH.II.SS.T) / ' :' *TIMX (EM=HH.II.SS' 'AP) / ' :' *TIMX (EM=HH) END
Ausgabe des Programms EMDATI
:
DATE INTERNAL : 2005-01-12 : Wednesday 2.WEEK 2005 : 12.DAY 2005 ROMAN : MMV AMERICAN : 01/12/2005 OR 01/12/2005 JULIAN : 2005012 OR 2005012 GREGORIAN: 12.January2005 OR 12January 2005 TIME INTERNAL : 16:04:14 OR 16:04:14.8 : 16.04.14.8 : 04.04.14 PM : 16
Editiermasken für Felder, die das Format L haben (logische Felder), können wie folgt definiert werden:
(EM =[false-string/]true-string)
|
wobei false-string für die für "falsch" auszugebende Zeichenkette und true-string für die für "wahr" auszugebende Zeichenkette steht.
** Example 'EMLOGV': Edit mask for logical variables ************************************************************************ DEFINE DATA LOCAL 1 #SWITCH (L) INIT <true> 1 #INDEX (I1) END-DEFINE * FOR #INDEX 1 5 WRITE NOTITLE #SWITCH (EM=FALSE/TRUE) 5X 'INDEX =' #INDEX WRITE NOTITLE #SWITCH (EM=OFF/ON) 7X 'INDEX =' #INDEX IF #SWITCH MOVE FALSE TO #SWITCH ELSE MOVE TRUE TO #SWITCH END-IF /* SKIP 1 END-FOR END
Ausgabe des Programms EMLOGV
:
TRUE INDEX = 1 ON INDEX = 1 FALSE INDEX = 2 OFF INDEX = 2 TRUE INDEX = 3 ON INDEX = 3 FALSE INDEX = 4 OFF INDEX = 4 TRUE INDEX = 5 ON INDEX = 5