Mit dem Session-Parameter EM können Sie eine Editiermaske für ein
Eingabe- und/oder Ausgabefeld definieren, welches in einem der Statements verwendet wird,
die in der folgenden Tabelle unter Gültige Statements aufgeführt
sind.
| Mögliche Werte | Siehe EM-Parameter-Syntax. | |
|---|---|---|
| Standard-Einstellung | Keine | |
| Gültige Statements | FORMAT |
Parameter kann dynamisch mit dem FORMAT-Statement angegeben
werden.
Anmerkung |
|
|
Parameter kann auf Statement- und/oder Element-Ebene angegeben werden. | |
| Parameter kann auf Element-Ebene angegeben werden. | ||
| Gültiges Kommando | Keines | |
Anmerkungen:
EMU.
EM kann auch bei Feldern mit Format U
(Unicode) verwendet werden, siehe auch Unicode- und
Codepage-Unterstützung in der Natural-Programmiersprache,
Session-Parameter, EMU, ICU, LCU, TCU im
Vergleich zu EM, IC, LC, TC in der Unicode- und
Codepage-Unterstützung-Dokumentation.
Die folgenden Themen werden nachfolgend erörtert:
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 Datebdefinitionsmodul (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)
Sie können eine Abfolge derselben signifikanten Zeichen durch eine numerische Notation
ersetzen, zum Beispiel: x(8) for xxxxxxxx. Die folgenden
Beispiele veranschaulichen die verkürzte Notation, die für die signifikanten Zeichen von
numerischen (Z,9), hexadezimalen (H), alphanumerischen
(X) und Datums- (N,L) Editiermasken verwendet werden können:
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 EM=YYYY-L(8)-DD-N(8) is equivalent to: EM=YYYY-LLLLLLLL-DD-NNNNNNNN
Unmittelbar hinter dem Gleichheitszeichen (=) des EM-Parameters
sind keine Leerzeichen zulässig (zum Beispiel: EM=<blank>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 an die 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 Dezimaltrennzeichen (Punkt oder 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 Dezimaltrennzeichen
(Komma oder Punkt) 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 Dezimaltrennzeichen darf kein
Z stehen. Ein Nullwert kann unter Einbeziehung aller
Zs in der Editiermaske als lauter Leerzeichen ausgegeben werden
(siehe auch Session-Parameter ZP).
|
Vor den Neunern oder Zs können eins oder mehrere andere Zeichen
stehen.
Wenn das erste Zeichen vor den Neunern oder Zs 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=*EURZZ9.9 |
EUR**0.0 |
EUR*54. |
EUR*87. |
EUR962. |
EUR830. |
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) /* 'B-L-U', 3 bytes of field only. WRITE #TEXT (EM=X-X-X-X-X) /* 'B-L-U-E-', with truncated mask. END
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 Hangegeben, 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 Ns 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) END
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
In einem MOVE EDITED-Statement gibt die Editiermaske die Position innerhalb
des Inhalts von operand1 an, an der sich die
relevanten Eingabedaten für operand2 befinden.
Wenn operand1 zusätzliche Zeichen im
Eingabeinhalt enthält, muss die Editiermaske diese zusätzlichen Zeichen enthalten, damit
sie ignoriert werden.
Die zusätzlichen Zeichen können auch ignoriert werden, indem ein Fragezeichen (?) als Platzhalterzeichen in der Editiermaske angegeben wird.
Wenn weder die zusätzlichen Zeichen noch ein Fragezeichen als in der Editiermaske
vorhanden sind, wo zusätzliche Eingabezeichen auftreten, wird bei der MOVE
EDITED-Operation die Eingabe als nicht korrekt interpretiert.
Siehe auch Beispiel 6 – MOVE EDITED mit Editiermaske für Eingaben mit zusätzlichen
Zeichen und Beispiel 7 – MOVE
EDITED mit Fragezeichen als Platzhalterzeichen in der
Editiermaske in der Beschreibung des
MOVE-Statements.