SAP NetWeaver AS ABAP Release 751, ©Copyright 2017 SAP AG. Alle Rechte vorbehalten.
ABAP - Schlüsselwortdokumentation → ABAP - Referenz → Interne Daten verarbeiten → Zeichen- und Bytekettenverarbeitung → Ausdrücke und Funktionen für die Zeichenkettenverarbeitung → string_exp - Zeichenkettenausdrücke → string_exp - Zeichenketten-Templates → Zeichenketten-Templates - embedded_expressions →Eingebettete Ausdrücke - format_options
Syntax
... [WIDTH = len]
[ALIGN = LEFT|RIGHT|CENTER|(dobj)|expr]
[PAD = c]
[CASE = RAW|UPPER|LOWER|(dobj)|expr]
[SIGN = LEFT|LEFTPLUS|LEFTSPACE|RIGHT|RIGHTPLUS|RIGHTSPACE|(dobj)|expr]
[EXPONENT = exp]
[DECIMALS = dec]
[ZERO = YES|NO|(dobj)|expr]
[XSD = YES|NO|(dobj)|expr]
[STYLE = SIMPLE|SIGN_AS_POSTFIX|SCALE_PRESERVING
|SCIENTIFIC|SCIENTIFIC_WITH_LEADING_ZERO
|SCALE_PRESERVING_SCIENTIFIC|ENGINEERING
|(dobj)|expr]
[CURRENCY = cur]
[NUMBER = RAW|USER|ENVIRONMENT|(dobj)|expr]
[ALPHA = IN|OUT|RAW|(dobj)|expr]
[DATE = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr]
[TIME = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr]
[TIMESTAMP = SPACE|ISO|USER|ENVIRONMENT|(dobj)|expr]
[TIMEZONE = tz]
[COUNTRY = cty] ...
Zusätze:
1. ... WIDTH = len ...
2. ... ALIGN = LEFT|RIGHT|CENTER|(dobj)|expr ...
3. ... PAD = c ...
4. ... CASE = RAW|UPPER|LOWER|(dobj)|expr ...
5. ... SIGN = LEFT|LEFTPLUS|LEFTSPACE|RIGHT|RIGHTPLUS|RIGHTSPACE|(dobj)|expr ...
6. ... EXPONENT = exp ...
7. ... DECIMALS = dec ...
8. ... ZERO = YES|NO|(dobj)|expr ...
9. ... XSD = YES|NO|(dobj)|expr ...
10. ... STYLE = ...|(dobj)|expr ...
11. ... CURRENCY = cur ...
12. ... NUMBER = RAW|USER|ENVIRONMENT|(dobj)|expr ...
13. ... ALPHA = IN|OUT|RAW|(dobj)|expr ...
14. ... DATE = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr ...
15. ... TIME = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr ...
16. ... TIMESTAMP = SPACE|ISO|USER|ENVIRONMENT|(dobj)|expr ...
17. ... TIMEZONE = tz ...
18. ... COUNTRY = cty ...
Wirkung
Diese Formatierungsoptionen übersteuern die vordefinierten Formate von eingebetteten Ausdrücken in Zeichenketten-Templates. Die Formatierungsoptionen werden in der Form von optionalen Schlüsselwortparametern angegeben, denen ein Aktualparameter zugewiesen wird.
Aktualparameter mit fest vorgegebenen Werten können wie folgt angegeben werden:
Welche Formatierungsoptionen angegeben werden können, hängt vom Datentyp des eingebetteten Ausdrucks ab. Die Formatierungsoptionen NUMBER, DATE, TIME, TIMESTAMP und COUNTRY schließen sich gegenseitig aus.
Wenn als eingebetteter Ausdruck ein Formalparameter oder ein Feldsymbol mit generischem Datentyp angegeben ist, können nur Formatierungsoptionen angegeben werden, die bei allen möglichen konkreten Datentypen erlaubt sind.
Hinweis
Die Angaben (dobj) und expr stellen zusammengefasst eine
funktionale Operandenposition dar. Im Gegensatz zu den normalen
funktionalen Operandenpositionen muss hier aber
das Datenobjekt dobj in Klammern gesetzt werden, um es eindeutig von einem als Schlüsselwort angegebenen Parameter unterscheiden zu können.
... WIDTH = len ...
Wirkung
Diese Formatierungsoption legt die Länge der vom eingebetteten Ausdruck dargestellten Zeichenkette auf den Wert von len fest, wobei len eine numerische Ausdrucksposition ist.
Die Option WIDTH kann für alle Datentypen des eingebetteten Ausdrucks
angegeben werden. Wenn der Wert von len kleiner als die minimal benötigte
Länge ist, wird die Angabe ignoriert. Die vordefinierte Länge kann also nur vergrößert
aber nicht verkleinert werden. Standardmäßig wird die Zeichenkette bei einer Vergrößerung
nach rechts verlängert und dort mit Leerzeichen aufgefüllt. Diese Standardeinstellung
kann mit den Formatierungsoptionen ALIGN und PAD übersteuert werden.
Beispiel
Die Länge des Ergebnisses des folgenden Zeichenketten-Templates ist 20. Es besteht aus 4 Ziffern, einem Dezimaltrennzeichen und 15 schließenden Leerzeichen.
DATA(text) = |{ CONV decfloat34( 1234 / 10 ) WIDTH = 20 }|.
Ausführbares Beispiel
Zeichenketten-Templates, Längenangabe
... ALIGN = LEFT|RIGHT|CENTER|(dobj)|expr ...
Wirkung
Diese Formatierungsoption legt die Ausrichtung der vom eingebetteten Ausdruck dargestellten Zeichenkette fest. Sie hat nur eine Wirkung, wenn gleichzeitig mit WIDTH eine Länge festgelegt wird, die größer als die minimal benötigte Länge ist.
Die Werte für die Ausrichtung sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
LEFT | CL_ABAP_FORMAT=>A_LEFT | linksbündig |
RIGHT | CL_ABAP_FORMAT=>A_RIGHT | rechtsbündig |
CENTER | CL_ABAP_FORMAT=>A_CENTER | mittig |
Die Standardeinstellung ist LEFT. Je nach Ausrichtung werden überzählige
Stellen im Ergebnis rechts, links oder abwechselnd rechts und links standardmäßig mit
Leerzeichen aufgefüllt. Diese Standardeinstellung kann mit der Formatierungsoption PAD übersteuert werden.
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) =
|{ 1 WIDTH = 5 ALIGN = RIGHT
}{ 2 WIDTH = 5 ALIGN = RIGHT
}{ 3 WIDTH = 5 ALIGN = RIGHT }<-|.
Ausführbares Beispiel
Zeichenketten-Templates, Ausrichtung und Auffüllen
... PAD = c ...
Wirkung
Diese Formatierungsoption legt das Zeichen fest, mit der überzählige Stellen im Ergebnis aufgefüllt werden. Sie hat nur eine Wirkung, wenn gleichzeitig mit WIDTH eine Länge festgelegt wird, die größer als die minimal benötigte Länge ist.
Für c kann ein Datenobjekt vom Datentyp c oder
string angegeben werden, dessen erstes Zeichen zum Auffüllen verwendet
wird. Wenn die Option PAD nicht angegeben ist oder für c ein leerer String angegeben wird, wird mit Leerzeichen aufgefüllt.
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) = |{ 'X' ALIGN = RIGHT WIDTH = 10 PAD = '_' }|.
Beispiel
Siehe Zeichenketten-Templates, Ausrichtung und Auffüllen
... CASE = RAW|UPPER|LOWER|(dobj)|expr ...
Wirkung
Diese Formatierungsoption legt die Groß-/Kleinschreibung der vom eingebetteten Ausdruck dargestellten Zeichenkette fest. Sie kann für alle Datentypen des eingebetteten Ausdrucks angegeben werden.
Die Werte für die Groß-/Kleinschreibung sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
RAW | CL_ABAP_FORMAT=>C_RAW | unverändert |
UPPER | CL_ABAP_FORMAT=>C_UPPER | Großschreibung |
LOWER | CL_ABAP_FORMAT=>C_LOWER | Kleinschreibung |
Die Standardeinstellung ist RAW.
Hinweis
Die Formatierungsoption CASE wirkt auf die Buchstaben der Zeichenkette. Sie wirkt nicht auf ein mit PAD angegebenes Auffüllungszeichen. Bei numerischen Datentypen wird das "e" bzw. "E" eines Exponenten beeinflusst, bei byteartigen Datentypen sind es die Buchstaben der Hexadezimaldarstellung.
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) =
|{ cl_abap_codepage=>convert_to( 'Hello World!' ) CASE = LOWER }| .
Ausführbares Beispiel
Zeichenketten-Templates, Groß-/Kleinschreibung
... SIGN = LEFT|LEFTPLUS|LEFTSPACE|RIGHT|RIGHTPLUS|RIGHTSPACE|(dobj)|expr ...
Wirkung
Diese Formatierungsoption legt das Format des Vorzeichens fest, wenn die vom eingebetteten Ausdruck dargestellte Zeichenkette einen numerischen Wert darstellt. Sie kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat.
Die Werte für das Format des Vorzeichens sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
LEFT | CL_ABAP_FORMAT=>S_LEFT | "-" links ohne Zwischenraum, kein "+" |
LEFTPLUS | CL_ABAP_FORMAT=>S_LEFTPLUS | "-" und "+" links ohne Zwischenraum |
LEFTSPACE | CL_ABAP_FORMAT=>S_LEFTSPACE | "-" links ohne Zwischenraum, Leerzeichen links für "+" |
RIGHT | CL_ABAP_FORMAT=>S_RIGHT | "-" rechts ohne Zwischenraum, kein "+" |
RIGHTPLUS | CL_ABAP_FORMAT=>S_RIGHTPLUS | "-" und "+" rechts ohne Zwischenraum |
RIGHTSPACE | CL_ABAP_FORMAT=>S_RIGHTSPACE | "-" links ohne Zwischenraum, Leerzeichen rechts für "+" |
Die Standardeinstellung ist LEFT.
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) = |{ 1 SIGN = LEFTPLUS }| .
Ausführbares Beispiel
Zeichenketten-Templates, Vorzeichen
... EXPONENT = exp ...
Wirkung
Diese Formatierungsoption legt den Exponenten bei der Aufbereitung von Gleitpunktzahlen auf den Wert von exp fest, wobei exp eine numerische Ausdrucksposition ist. Die Option EXPONENT kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf nicht zusammen mit den Optionen TIMESTAMP oder TIMEZONE angegeben werden.
Die Option EXPONENT wirkt nur auf den Datentyp f oder wenn die Option STYLE mit dem Wert scientific angegeben ist.
Für exp wird ein Datenobjekt vom Typ i erwartet, das den gewünschten Exponenten enthält.
Wenn für exp der Wert der Konstanten CL_ABAP_FORMAT=>EXP_PRESERVE angegeben wird, wird der Exponent verwendet, welcher der internen Darstellung der Gleitpunktzahl entspricht.
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) = |{ CONV f( 2 / 3 ) }, { CONV f( 2 / 3 ) EXPONENT = -1 }|.
... DECIMALS = dec ...
Wirkung
Diese Formatierungsoption legt die Anzahl der Nachkommastellen bei der Aufbereitung von numerischen Werten auf den Wert von dec fest, wobei dec eine numerische Ausdrucksposition ist. Die Option DECIMALS kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf nicht zusammen mit den Optionen TIMESTAMP oder TIMEZONE angegeben werden.
Für dec wird ein Datenobjekt vom Typ i erwartet, das die Anzahl der gewünschten Nachkommastellen enthält. Wenn der Inhalt von dec kleiner als 0 ist, wird er wie 0 behandelt, wobei der Inhalt von Datenobjekten der Datentypen (b, s), i, int8 oder p zuvor mit 10 hoch dec multipliziert wird. Für die einzelnen numerischen Datentypen gilt:
Wenn zusätzlich die Formatierungsoption CURRENCY angegeben ist, wird diese bei den Datentypen (b, s), i, int8 und p zuerst ausgeführt und dann die Formatierungsoption DECIMALS angewendet. Beim Datentyp f wird die Formatierungsoption CURRENCY ignoriert, wenn sie gemeinsam mit DECIMALS angegeben ist.
Hinweis
Die Formatierungsoption DECIMALS übersteuert nicht die
vordefinierte Einstellung, dass keine Tausendertrennzeichen eingefügt werden.
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette. Ohne Angabe des Konvertierungsoperators ist der Rechentyp des eingebetteten Ausdrucks i.
DATA(text) = |{ - 2 / 3 DECIMALS = 3 }, {
CONV decfloat34( - 2 / 3 ) DECIMALS = 3 }, {
CONV f( - 2 / 3 ) DECIMALS = 3 }|.
... ZERO = YES|NO|(dobj)|expr ...
Wirkung
Diese Formatierungsoption legt das Format des numerischen Werts Null fest. Die Option ZERO kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf nicht zusammen mit den Optionen TIMESTAMP oder TIMEZONE angegeben werden.
Die Werte für das Format des Werts Null sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
YES | CL_ABAP_FORMAT=>Z_YES | Der Wert Null wird gemäß der aktuellen Formatierung als Zahlenwert dargestellt. |
NO | CL_ABAP_FORMAT=>Z_NO | Der Wert Null wird als leere Zeichenkette dargestellt. |
Die Standardeinstellung ist YES.
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) = |{ 0 ZERO = NO }, { 0 ZERO = YES }|.
... XSD = YES|NO|(dobj)|expr ...
Wirkung
Diese Formatierungsoption bereitet den Wert des eingebetteten Ausdrucks im asXML-Format auf, das seinem Datentyp zugeordnet ist. Die Option XSD kann für alle elementaren Datentypen angegeben werden. Sie kann nicht gemeinsam mit anderen Formatierungsoptionen außer WIDTH, ALIGN, PAD, CASE und ZERO angegeben werden.
Die Option XSD wirkt auf alle unter Mapping elementarer ABAP-Typen aufgeführten Datentypen wie dort angegeben.
Die Werte für asXML-Format sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
YES | CL_ABAP_FORMAT=>X_YES | Der Wert des eingebetteten Ausdrucks wird in Abhängigkeit von seinem Datentyp gemäß dem unter Mapping elementarer ABAP-Typen angegebenen asXML-Format formatiert. Wenn der Datentyp sich auf eine der unter Mapping weiterer XML-Schema-Datentypen genannten Domänen außer XSDQNAME bezieht, wird das dort angegebene Format verwendet. Das Mapping von XML-Fragmenten über die Domäne XSDANY wird nicht unterstützt. |
NO | CL_ABAP_FORMAT=>X_NO | unverändert |
Wenn der Datentyp des eingebetteten Ausdrucks vom Typ x oder xstring ist, hat eine gleichzeitig angegebene FormatierungsoptionCASE keine Wirkung, außer er bezieht sich auf die Domäne XSDUUID_RAW.
Hinweis
Die Formatierung eines eingebetteten Ausdrucks mit XSD hat im Wesentlichen gleiche Ergebnis wie eine Anwendung der vordefinierten Identitäts-Transformation ID. Im Unterschied zum Aufruf von CALL TRANSFORMATION sind Ausnahmen, die beim Mapping auftreten können, aber nicht verschalt sondern müssen direkt behandelt werden.
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette. XSDBOOLEAN ist ein Datenelement, das sich auf die spezielle Domäne XSDBOOLEAN für das Mapping von Wahrheitswerten bezieht.
DATA:
flag1 TYPE xsdboolean VALUE abap_true,
flag2 TYPE xsdboolean VALUE abap_false.
DATA(text) = |{ flag1 XSD = YES }, { flag2 XSD = YES }|.
Ausführbares Beispiel
Zeichenketten-Templates, asXML-Format
... STYLE = ...|(dobj)|expr ...
Wirkung
Diese Formatierungsoption legt das Format von dezimalen Gleitpunktzahlen fest. Die Option STYLE kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf nicht zusammen mit den Optionen CURRENCY, SIGN, TIMESTAMP oder TIMEZONE angegeben werden.
Die Werte für das Format einer dezimalen Gleitpunktzahl sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr |
SIMPLE | CL_ABAP_FORMAT=>O_SIMPLE |
SIGN_AS_POSTFIX | CL_ABAP_FORMAT=>O_SIGN_AS_POSTFIX |
SCALE_PRESERVING | CL_ABAP_FORMAT=>O_SCALE_PRESERVING |
SCIENTIFIC | CL_ABAP_FORMAT=>O_SCIENTIFIC |
SCIENTIFIC_WITH_LEADING_ZERO | CL_ABAP_FORMAT=>O_SCIENTIFIC_WITH_LEADING_ZERO |
SCALE_PRESERVING_SCIENTIFIC | CL_ABAP_FORMAT=>O_SCALE_PRESERVING_SCIENTIFIC |
ENGINEERING | CL_ABAP_FORMAT=>O_ENGINEERING |
Der numerische Wert der Zeichenkette wird in den Datentyp decfloat34 konvertiert und wie folgt behandelt:
Betreffs Tausender- und Dezimaltrennzeichen gelten die allgemeinen Regeln für eingebettete Ausdrücke. Für das Zusammenspiel mit anderen Formatierungsoptionen gilt:
Hinweise
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) = |{ CONV decfloat34( '123456' ) STYLE = ENGINEERING }|.
Ausführbares Beispiel
Dezimale Gleitpunktzahlen, Aufbereitung mit STYLE
... CURRENCY = cur ...
Wirkung
Diese Formatierungsoption legt die Anzahl der Nachkommastellen bei der Aufbereitung von numerischen Werten in Abhängigkeit von einer in cur über ein Währungskürzel angegebenen Währung fest. Die Option CURRENCY kann nur angegeben werden, wenn der eingebettete Ausdruck einen der numerischen Datentypen i, p oder f hat. Sie darf nicht für die numerischen Typen decfloat16 und decfloat34 und nicht zusammen mit den Optionen STYLE, TIMESTAMP oder TIMEZONE angegeben werden. Mit der Option SIGN kann dann zusätzlich die Formatierung des Vorzeichens gesteuert werden.
Die Aufbereitung der Zeichenkette bezüglich ihrer Nachkommastellen ist für die einzelnen numerischen Datentypen wie folgt:
Bei den numerischen Datentypen i, p und
f wird in cur ein Währungskürzel aus der Spalte WAERS
der Datenbanktabelle TCURC erwartet. Für jedes angegebene Währungskürzel werden
zwei Nachkommastellen verwendet, es sei denn es ist in der Spalte CURRKEY der Datenbanktabelle TCURX
enthalten. Dann wird die Anzahl der Nachkommastellen aus der Spalte CURRDEC der entsprechenden Zeile in Tabelle TCURX ermittelt.
Hinweise
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) = |{ 12345678 CURRENCY = 'EUR' }|.
... NUMBER = RAW|USER|ENVIRONMENT|(dobj)|expr ...
Wirkung
Diese Formatierungsoption legt das Format der Dezimaldarstellung (Dezimaltrennzeichen und Tausendertrennzeichen) fest. Die Option NUMBER kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf neben oben aufgeführten Ausschlüssen auch nicht mit den Optionen TIMESTAMP oder TIMEZONE zusammen angegeben werden.
Die Werte für das Format der Dezimaldarstellung sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
RAW | CL_ABAP_FORMAT=>N_RAW | Das Dezimaltrennzeichen ist der Punkt (.) und es werden keine Tausendertrennzeichen eingefügt. |
USER | CL_ABAP_FORMAT=>N_USER | Dezimaltrennzeichen und Tausendertrennzeichen werden dem Benutzerstammsatz entnommen. |
ENVIRONMENT | CL_ABAP_FORMAT=>N_ENVIRONMENT | Dezimaltrennzeichen und Tausendertrennzeichen richten sich nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann. |
Die Standardeinstellung ist RAW.
Hinweis
Wenn die Formatierungseinstellung der
Sprachumgebung
nicht über SET COUNTRY auf ein
länderspezifisches Format gesetzt wurde, ist
die Verwendung von environment gleichbedeutend zur Verwendung von USER.
Ausführbares Beispiel
Zeichenketten-Templates, Formatierungseinstellungen
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
SET COUNTRY 'US'.
DATA(text) = |{ 1000000 NUMBER = ENVIRONMENT }|.
... ALPHA = IN|OUT|RAW|(dobj)|expr ...
Wirkung
Diese Formatierungsoption fügt Ziffernfolgen führende Nullen hinzu oder entfernt diese. Die Option ALPHA kann nur angegeben werden, wenn der eingebettete Ausdruck den Datentyp string, c oder n hat. Sie kann nicht gemeinsam mit anderen Formatierungsoptionen außer WIDTH und CASE angegeben werden.
Die Werte für das Format der Ziffernfolge sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
IN | CL_ABAP_FORMAT=>L_IN | Wenn die Zeichenkette des eingebetteten Ausdrucks außer öffnenden und schließenden Leerzeichen nichts als eine ununterbrochene Folge von Ziffern enthält, wird die Ziffernfolge rechtsbündig in eine Zeichenkette bestimmter Länge (siehe unten) gestellt und diese wird falls notwendig links mit der Ziffer "0" aufgefüllt. Ansonsten werden die Zeichen der Zeichenkette des eingebetteten Ausdrucks linksbündig in die Zeichenkette gestellt und falls notwendig rechts mit Leerzeichen aufgefüllt. Wenn die Länge nicht ausreicht, wird in beiden Fällen rechts abgeschnitten. |
OUT | CL_ABAP_FORMAT=>L_OUT | Wenn die Zeichenkette des eingebetteten Ausdrucks außer öffnenden und schließenden Leerzeichen nichts als eine ununterbrochene Folge von Ziffern enthält, werden führende Nullen aus der Ziffernfolge entfernt und die restlichen Ziffern linksbündig in eine Zeichenkette bestimmter Länge (siehe unten) gestellt und diese wird falls notwendig rechts mit Leerzeichen aufgefüllt. Ansonsten werden alle Zeichen der Zeichenkette des eingebetteten Ausdrucks linksbündig in die Zeichenkette gestellt und falls notwendig rechts mit Leerzeichen aufgefüllt. Wenn die Länge nicht ausreicht, wird in beiden Fällen rechts abgeschnitten. |
RAW | CL_ABAP_FORMAT=>L_RAW | Keine Formatierung. |
Die Länge der resultierenden Zeichenkette wird wie folgt bestimmt:
Hinweise
Beispiel
Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.
DATA(text) = |{ '1234' ALPHA = IN WIDTH = 10 }|.
Ausführbares Beispiel
Zeichenketten-Templates, Ziffernfolgen
... DATE = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr ..
Wirkung
Diese Formatierungsoption legt das Format eines Datums fest. Die Option DATE kann nur angegeben werden, wenn der eingebettete Ausdruck den Datentyp d hat.
Die Werte für das Format des Datums sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
RAW | CL_ABAP_FORMAT=>D_RAW | Der Inhalt des Datumsfelds wird unformatiert übernommen. |
ISO | CL_ABAP_FORMAT=>D_ISO | Die Aufbereitung des Datums erfolgt gemäß ISO 8601 mit Strichen (-) als Trennzeichen: "yyyy-mm-dd". |
USER | CL_ABAP_FORMAT=>D_USER | Die Aufbereitung des Datums geschieht entsprechend der im Benutzerstammsatz definierten Maske. |
ENVIRONMENT | CL_ABAP_FORMAT=>D_ENVIRONMENT | Die Aufbereitung des Datums richtet sich nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann. |
Die Standardeinstellung ist RAW.
Hinweis
Wenn die Formatierungseinstellung der
Sprachumgebung
nicht über SET COUNTRY auf ein
länderspezifisches Format gesetzt wurde, ist
die Verwendung von environment gleichbedeutend zur Verwendung von USER.
Ausführbares Beispiel
Zeichenketten-Templates, Formatierungseinstellungen
Beispiel
Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom aktuellen Datum die darunter gezeigte Zeichenkette.
DATA(text) = |{ sy-datlo DATE = ISO }|.
... TIME = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr ..
Wirkung
Diese Formatierungsoption legt das Format einer
Zeitangabe fest. Die Option TIME
kann nur angegeben werden, wenn der eingebettete Ausdruck den Datentyp t hat.
Die Werte für das Format der Zeitangabe sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
RAW | CL_ABAP_FORMAT=>T_RAW | Der Inhalt des Zeitfelds wird unformatiert übernommen. |
ISO | CL_ABAP_FORMAT=>T_ISO | Die Aufbereitung der Zeitangabe erfolgt gemäß ISO 8601 im 24-Stunden-Format mit Doppelpunkten (:) als Trennzeichen: "hh:mm:ss". |
USER | CL_ABAP_FORMAT=>T_USER | Die Aufbereitung der Zeit geschieht entsprechend des im Benutzerstammsatz definierten Formats. |
ENVIRONMENT | CL_ABAP_FORMAT=>T_ENVIRONMENT | Die Aufbereitung der Zeit richtet sich nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann. |
Die Standardeinstellung ist RAW.
Hinweis
Im Benutzerstammsatz oder über die Anweisung
SET COUNTRY können ein 24-Stunden-Format und vier 12-Stunden-Formate
eingestellt werden. Um eine Formatierung im 12-Stunden-Format zu erwirken, muss USER
oder ENVIRONMENT angegeben oder alternativ mit der Formatierungsoption COUNTRY gearbeitet werden.
Hinweis
Wenn die Formatierungseinstellung der
Sprachumgebung
nicht über SET COUNTRY auf ein
länderspezifisches Format gesetzt wurde, ist
die Verwendung von environment gleichbedeutend zur Verwendung von USER.
Ausführbares Beispiel
Zeichenketten-Templates, Formatierungseinstellungen
Beispiel
Das folgende Zeichenketten-Template erzeugt in Abhängigkeit von der aktuellen Zeit die darunter gezeigte Zeichenkette, falls in der Datenbanktabelle T005X ein Land mit einem 12-Stunden-Format gefunden wird.
SELECT SINGLE land
FROM t005x
WHERE timefm = 1
INTO @DATA(land).
IF sy-subrc <> 0.
RETURN.
ENDIF.
SET COUNTRY land.
DATA(text) = |{ sy-timlo TIME = ENVIRONMENT }|.
... TIMESTAMP = SPACE|ISO|USER|ENVIRONMENT|(dobj)|expr ...
Wirkung
Diese Formatierungsoption legt das Format eines Zeitstempels fest. Die Option TIMESTAMP kann nur angegeben werden, wenn der eingebettete Ausdruck den Datentyp p der Länge 8 ohne Nachkommastellen (TIMESTAMP aus dem ABAP Dictionary) oder den Datentyp p der Länge 11 mit sieben Nachkommastellen (TIMESTAMPL aus dem ABAP Dictionary) hat. Der Wert des eingebetteten Ausdrucks wird als Zeitstempel aufgefasst.
Die Werte für das Format des Zeitstempels sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:
Schlüsselwort | Wert von dobj oder expr | Wirkung |
SPACE | CL_ABAP_FORMAT=>TS_SPACE | Der Inhalt des Zeitstempels wird standardmäßig in ein Datum und eine Zeitangabe in UTC-Referenzzeit konvertiert und diese werden getrennt durch ein Leerzeichen jeweils nach ISO 8601 dargestellt: "yyyy-mm-dd hh:mm:ss.zzzzzzz". Mit der Option TIMEZONE kann eine andere Zeitzone angegeben werden. |
ISO | CL_ABAP_FORMAT=>TS_ISO | Wie SPACE, wobei aber gemäß ISO 8601 das Zeichen "T" zwischen Datum und Zeit steht und als Dezimaltrennzeichen immer das Komma (,) verwendet wird: "yyyy-mm-ddThh:mm:ss,zzzzzzz". |
USER | CL_ABAP_FORMAT=>TS_USER | Wie SPACE, wobei aber das Datums- und das Zeitformat dem Benutzerstammsatz entnommen werden. |
ENVIRONMENT | CL_ABAP_FORMAT=>TS_ENVIRONMENT | Wie SPACE. Datums- und das Zeitformat richten sich hier aber nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann. |
- | CL_ABAP_FORMAT=>TS_RAW | Der Inhalt des Zeitstempels wird unkonvertiert als gepackte Zahl ausgegeben. |
Die Standardeinstellung ist SPACE.
Hinweis
Wenn die Formatierungseinstellung der
Sprachumgebung
nicht über SET COUNTRY auf ein
länderspezifisches Format gesetzt wurde, ist
die Verwendung von environment gleichbedeutend zur Verwendung von USER.
Ausführbares Beispiel
Zeichenketten-Templates, Formatierungseinstellungen
Beispiel
Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom aktuellen Zeitstempel die darunter gezeigte Zeichenkette.
GET TIME STAMP FIELD DATA(tmstmp).
DATA(text) = |{ tmstmp TIMESTAMP = ISO }|.
... TIMEZONE = tz ...
Wirkung
Diese Formatierungsoption konvertiert die Datums- und Zeitinformation eines Zeitstempels in das lokale Datum und die lokale Zeit der angegebenen Zeitzone. Die Aufbereitung erfolgt gemäß der Angabe für die Option TIMESTAMP.
Die Option TIMEZONE kann nur angegeben werden, wenn der eingebettete Ausdruck einen der Datentypen TIMESTAMPL oder TIMESTAMP aus dem ABAP Dictionary (entsprechend Typ p der Länge 11 mit 7 Nachkommastellen bzw. p der Länge 8 ohne Nachkommastellen) für einen Zeitstempel hat. Für andere Datentypen kommt es zu einem Syntax- bzw. Laufzeitfehler.
Für tz muss ein zeichenartiges Datenobjekt angegeben werden, das eine Zeitzone aus der Datenbanktabelle TTZZ enthält. Ist das Regelwerk für die angegebene Zeitzone nicht vollständig, kommt es zu einer unbehandelbaren Ausnahme. Ist tz initial, wird die wird die Zeitzone implizit auf "UTC" gesetzt.
Wenn bei Quellfeldern der Typen TIMESTAMPL oder TIMESTAMP aus dem Dictionary der Zusatz TIMEZONE angegeben ist, wird der Inhalt des Quellfelds als Zeitstempel behandelt. Wenn die Option TIMEZONE ohne die Option TIMESTAMP angegeben ist, wird implizit die Option TIMESTAMP mit dem Parameter SPACE ergänzt, Die Option TIMEZONE darf nicht angegeben werden, wenn für TIMESTAMP in dobj bzw. expr der Wert von CL_ABAP_FORMAT=>TS_RAW angegeben ist. Die Konvertierung erfolgt wie mit der Anweisung CONVERT TIME STAMP.
Wenn der Wert von tz nicht in der Datenbanktabelle TTZZ enthalten ist, wenn
das Quellfeld keinen gültigen Zeitstempel enthält oder wenn die Konvertierung einen lokalen
Zeitpunkt außerhalb des Wertebereichs für lokales Datum und Zeit ergeben würde, wird der Inhalt unabhängig vom Wert als UTC-Zeitstempel aufbereitet.
Beispiel
Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom aktuellen Zeitstempel die darunter gezeigte Zeichenkette.
GET TIME STAMP FIELD DATA(tmstmp).
DATA(text) =
|{ tmstmp TIMESTAMP = ISO } {
tmstmp TIMESTAMP = ISO TIMEZONE = 'CET' }|.
Ausführbares Beispiel
Zeichenketten-Templates, Zeitzonen
... COUNTRY = cty ...
Wirkung
Die Formatierungsoption COUNTRY legt eine temporäre Formatierungseinstellung für den aktuellen eingebetteten Ausdruck fest. Sie kann alternativ zu allen Formatierungsoptionen angegeben werden, für die der Parameter ENVIRONMENT angegeben kann, also statt NUMBER, DATE, TIME und TIMESTAMP. Der eingebettete Ausdruck wird je nach Datentyp als Zahl, Datum, Zeit oder Zeitstempel formatiert.
Für cty muss ein Datenobjekt vom Typ LAND1 aus dem ABAP Dictionary angegeben werden, das entweder einen Wert aus der Spalte LAND der Datenbanktabelle T005X enthält oder initial ist, ansonsten kommt es zu einer Ausnahme der Klasse CX_SY_STRG_FORMAT
Wenn cty einen Wert aus der Datenbanktabelle T005X enthält, wird das dort festgelegte länderspezifische Format verwendet. Wenn cty initial ist, wird die im Benutzerstammsatz angegebene Formatierung verwendet.
Hinweise
Beispiel
Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom Inhalt der Datenbanktabelle T005X die darunter gezeigte Zeichenkette.
DATA(text) = |{ 1000000 COUNTRY = 'DE ' }|.
Ausführbare Beispiele