Ansicht
Dokumentation

ABAPCOMPUTE_STRING_FORMAT_OPTIONS - COMPUTE STRING FORMAT OPTIONS

ABAPCOMPUTE_STRING_FORMAT_OPTIONS - COMPUTE STRING FORMAT OPTIONS

BAL Application Log Documentation   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- format_options

... $[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:

  • Statisch als Schlüsselwort
  • Dynamisch als
  • Inhalt eines in Klammern angegebenen Datenobjekts (dobj)

Die möglichen Werte von dobj bzw. expr sind in der Klasse CL_ABAP_FORMAT als Konstanten definiert.

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.

Zusatz 1

... 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.

Die Länge des Ergebnisses des folgenden Zeichenketten-Templates ist 20. Es besteht aus 4 Ziffern, einem Dezimaltrennzeichen und 15 schließenden Leerzeichen.

Zeichenketten-Templates, Längenangabe

Zusatz 2

... 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 Auswirkung
LEFT CL_ABAP_FORMAT=>A_LEFT linksbündig
RIGHT CL_ABAP_FORMAT=>A_RIGHT rechtsbündig
CENTER CL_ABAP_FORMAT=>A_CENTER Zentriert

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.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

    1    2    3-

Zeichenketten-Templates, Ausrichtung und Auffüllen

Zusatz 3

... 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.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

_________X

Beispiel

Siehe Zeichenketten-Templates, Ausrichtung und Auffüllen

Zusatz 4

... 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 Auswirkung
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. Beim Zeitstempeltyp wird ein "T" zwischen Datum und Zeit beeinflusst. Wenn gleichzeitig die Formatierungsoption XSD angegeben ist, wirkt CASE auf das damit erzeugte asXML-Format.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

48656c6c6f20576f726c6421

Zeichenketten-Templates, Groß-/Kleinschreibung

Zusatz 5

... 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 Auswirkung
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.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

+1

Zeichenketten-Templates, Vorzeichen

Zusatz 6

... 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.

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.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

0,66666666666666663, 6,6666666666666663E-01

Zusatz 7

... DECIMALS = dec ...

Wirkung

Diese Formatierungsoption legt die Anzahl der Nachkommastellen bei der Aufbereitung von numerischen Werten oder von Zeitstempeln 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 oder den Zeitstempeltyp utclong hat. Sie darf nicht zusammen mit der Option CURRENCY angegeben werden.

  • Wenn einer der Zusätze TIMEZONE oder TIMESTAMP für passende Zahlen vom Typ p angegeben ist, wird deren Inhalt als Zeitstempel aufgefasst. Beim Datentyp p der Länge 8 ohne Nachkommastellen (TIMESTAMP aus dem ABAP Dictionary) werden so viele Nullen angehängt, wie in dec angegeben sind. Beim Datentyp p der Länge 11 mit 7 Nachkommastellen (TIMESTAMPL aus dem ABAP Dictionary) werden so viele Nachkommastellen verwendet, wie in dec angegeben sind. Überzählige Nachkommastellen werden abgeschnitten. Wenn dec den Wert 0 hat, wird das Dezimaltrennzeichen entfernt.

Hinweis

Die Formatierungsoption DECIMALS übersteuert nicht die vordefinierte Einstellung für numerische Typen, dass keine Tausendertrennzeichen eingefügt werden.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge. Ohne Angabe des Konvertierungsoperators ist der Rechentyp des eingebetteten Ausdrucks i.

-1,000, -0,667, -0,667

Zusatz 8

... 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 Auswirkung
YES CL_ABAP_FORMAT=>Z_YES Der Wert Null wird gemäß der aktuellen Formatierung als Zahlenwert dargestellt.
NEIN CL_ABAP_FORMAT=>Z_NO Der Wert Null wird als leere Zeichenkette dargestellt.

Die Standardeinstellung ist YES.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

, 0

Zusatz 9

... 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 Auswirkung
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.
NEIN 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.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge. XSDBOOLEAN ist ein Datenelement, das sich auf die spezielle Domäne XSDBOOLEAN für das Mapping von Wahrheitswerten bezieht.

wahr, falsch

Zeichenketten-Templates, asXML-Format

Zusatz 10

... 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:

  • SIGN_AS_POSTFIX erstellt eine Kaufmännische Notation. Das Vorzeichen wird rechts angefügt (Minuszeichen bei negativen Werten, Leerzeichen bei positiven Werten). Schließende Nullen in den Nachkommastellen werden abgeschnitten.
  • SCIENTIFIC erstellt eine Wissenschaftliche Notation. Bei einer positiven Zahl wird kein Vorzeichen eingefügt. Die Ausgabe hat immer einen mindestens zweistelligen Exponenten mit Vorzeichen. Wenn der Zusatz EXPONENT nicht angegeben ist, wird in der Mantisse genau eine Vorkommastelle ausgegeben, deren Wert ungleich Null ist, außer das Quellfeld hat den Wert 0. Schließende Nullen in den Nachkommastellen der Mantisse werden abgeschnitten. Mit der Formatierungsoption DECIMALS kann die Anzahl der Nachkommastellen, mit EXPONENT der Exponent vorgegeben werden.
  • SCIENTIFIC_WITH_LEADING_ZERO erstellt eine Wissenschaftliche Notation mit führender Null. Wie SCIENTIFIC mit folgenden Unterschieden:
  • Es wird genau eine Vorkommastelle mit dem Wert 0 ausgegeben.

  • Die Formatierungsoption EXPONENT kann nicht angegeben werden.

  • Der Exponent ist immer dreistellig für decfloat16 und vierstellig für decfloat34.

  • Schließende Nullen in den Nachkommastellen der Mantisse werden nicht abgeschnitten.

  • Die Formatierungsoption EXPONENT kann nicht angegeben werden.

  • ENGINEERING erstellt ein technisches Format. Wie SCIENTIFIC mit folgenden Unterschieden:
  • Der Wert des Exponenten ist immer ein ganzzahliges Vielfaches von 3.

  • Der Wertebereich der Vorkommastellen liegt zwischen 1 und 999 außer das Quellfeld hat den Wert 0.

  • Die Formatierungsoption EXPONENT kann nicht angegeben werden.

Betreffs Tausender- und Dezimaltrennzeichen gelten die allgemeinen Regeln für eingebettete Ausdrücke. Für das Zusammenspiel mit anderen Formatierungsoptionen gilt:

  • Die Formatierungsoption EXPONENT darf nur bei dem Ausgabeformat SCIENTIFIC angegeben werden.
  • Die Formatierungsoption DECIMALS darf nicht bei Ausgabeformaten angegeben werden, welche die Skalierung erhalten. Für die Ausgabeformate SIMPLE und SIGN_AS_POSTFIX legt DECIMALS die Anzahl der Nachkommastellen fest, wobei gegebenenfalls eine kaufmännische Rundung stattfindet oder schließende Nullen angehängt werden. Für die wissenschaftlichen Ausgabeformate legt DECIMALS die Anzahl der Nachkommastellen der Mantisse fest, wobei gegebenenfalls kaufmännisch gerundet wird.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

123,456E+03

Dezimale Gleitpunktzahlen, Aufbereitung mit STYLE

Zusatz 11

... 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 (b, s), i, int8, p und f, decfloat16 oder decfloat34 hat. Sie darf nicht zusammen mit den Optionen DECIMALS, 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 Datenobjekten der Typen (b, s), i und int8 wird ein Dezimaltrennzeichen an der durch cur bestimmten Stelle in das Ergebnis eingefügt.
  • Beim Datentyp p kommt es darauf an, wie der Wert angegeben ist:
  • Bei der Angabe als Datenobjekt oder als funktionale Methode werden die in der Definition des Datentyps festgelegten Nachkommastellen vollständig ignoriert. Unabhängig vom tatsächlichen Wert und ohne Rundungen, wird ein Dezimaltrennzeichen an der durch cur bestimmten Stelle zwischen den Ziffern eingefügt.

  • Bei Datenobjekten vom Typ f wirkt die Formatierungsoption CURRENCY wie DECIMALS, wobei die Anzahl der Nachkommastellen durch cur bestimmt wird.
  • Bei Datenobjekten vom Typ decfloat16 und decfloat34 fügt die Formatierungsoption CURRENCY den Zusatz STYLE cl_abap_format=>o_sign_as_postfix, der die Ausgabe in kaufmännischer Notation formatiert, implizit hinzu. Das Format des +/--Zeichens kann jedoch durch die Formatierungsoption SIGN überschrieben werden. Bei den Nachkommastellen gilt dieselbe Wirkung wie der Zusatz DECIMALS (siehe oben), wobei die Anzahl der Nachkommastellen durch cur festgelegt wird.

Bei den numerischen Datentypen i, p und f wird in cur ein Währungskürzel aus der Spalte WAERS der DDIC-Datenbanktabelle TCURC erwartet. Bei den anderen numerischen Typen werden für jedes angegebene Währungskürzel zwei Nachkommastellen verwendet, es sei denn es ist in der Spalte CURRKEY der DDIC-Datenbanktabelle TCURX enthalten. Dann wird die Anzahl der Nachkommastellen aus der Spalte CURRDEC der entsprechenden Zeile in Tabelle TCURX ermittelt.

Hinweise

  • Die Formatierungsoption CURRENCY übersteuert nicht die vordefinierte Einstellung, dass keine Tausendertrennzeichen eingefügt werden.
  • Die Formatierungsoption CURRENCY mit Währungen aus den Datenbanktabellen TCURC oder TCURX ist sinnvoll für die Formatierung von Datenobjekten der Typen (b, s), i, int8 oder p ohne Nachkommastellen, deren Inhalte Währungsbeträge in der kleinsten Einheit der Währung sind.
  • Für dezimale Gleitpunktzahlen gibt es die Methoden CONVERT_CURR_TO_DECFLOAT und CONVERT_DECFLOAT_TO_CURR der Systemklasse CL_ABAP_DECFLOAT. Diese konvertieren Währungsbeträge in Abhängigkeit von einem Währungsschlüssel in dezimale Gleitpunktzahlen und umgekehrt.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

123456,78

Zusatz 12

... 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 Auswirkung
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.

Beispiel

Siehe Zeichenketten-Templates, Formatierungseinstellungen

Beispiel

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

1.000.000

Zusatz 13

... 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 Auswirkung
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:

  • Wenn die Formatierungsoption WIDTH nicht angegeben ist und der eingebettete Ausdruck als einziger Inhalt eines Zeichenketten-Templates einem Zielfeld fester Länge vom Typ c, n, d oder t zugewiesen wird, bestimmt dessen Länge die zu Verfügung stehende Länge. Ansonsten wird die Länge des ursprünglichen Feldes inklusive schließender Leerzeichen verwendet.
  • Wenn die Formatierungsoption WIDTH angegeben ist, wird die angegebene Länge nur dann verwendet wenn sie größer als die Länge der ununterbrochenen Ziffernfolge ohne führende Nullen bzw. der Zeichenfolge ohne schließende Leerzeichen ist. Andernfalls wird die Länge der ununterbrochenen Ziffernfolge ohne führende Nullen bzw. der Zeichenfolge ohne schließende Leerzeichen verwendet.

Hinweise

  • Mit dem Parameter IN können Ziffernfolgen ohne führende Nullen in das Format von numerischem Text mit führenden Nullen verwandelt werden. Mit dem Parameter OUT kann numerischer Text mit führenden Nullen in Ziffernfolgen ohne führende Nullen konvertiert werden.

Das folgende Zeichenketten-Template erstellt die darunter gezeigte Zeichenfolge.

0000001234

Zeichenketten-Templates, Ziffernfolgen

Zusatz 14

... 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 Auswirkung
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.

Beispiel

Siehe Zeichenketten-Templates, Formatierungseinstellungen

Beispiel

Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom aktuellen Datum die darunter gezeigte Zeichenkette.

2016-09-09

Zusatz 15

... 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 Auswirkung
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 der im Benutzerstammsatz definierten Maske.
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.

Beispiel

Siehe Zeichenketten-Templates, Formatierungseinstellungen

Beispiel

Das folgende Zeichenketten-Template erzeugt in Abhängigkeit von der aktuellen Zeit die darunter gezeigte Zeichenkette, falls in der DDIC-Datenbanktabelle T005X ein Land mit einem 12-Stunden-Format gefunden wird.

10:55:58 AM

Zusatz 16

... 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 einen der folgenden Datentypen hat, sonst kommt es zu einem Syntax oder Laufzeitfehler:

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 Auswirkung
SPACE CL_ABAP_FORMAT=>TS_SPACE Der Zeitstempel wird gemäß SQL-Standard ISO 9075 dargestellt, wobei ein Leerzeichen zwischen Datum und Zeit steht und als Dezimaltrennzeichen der Punkt (.) verwendet wird: "yyyy-mm-dd hh:mm:ss.fffffff".
ISO CL_ABAP_FORMAT=>TS_ISO Der Zeitstempel wird gemäß ISO 8601 für Datumsformate und Zeitangaben dargestellt, wobei das Zeichen "T" zwischen Datum und Zeit steht und als Dezimaltrennzeichen das Komma (,) verwendet wird: "yyyy-mm-ddThh:mm:ss,fffffff".
USER CL_ABAP_FORMAT=>TS_USER Wie SPACE, wobei aber das Datums- und das Zeitformat sowie das Dezimaltrennzeichen dem Benutzerstammsatz entnommen werden.
ENVIRONMENT CL_ABAP_FORMAT=>TS_ENVIRONMENT Wie SPACE. Datums- und das Zeitformat sowie das Dezimaltrennzeichen richten sich hier aber nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann.
- CL_ABAP_FORMAT=>TS_RAW Der Zeitstempel wird als ununterbrochene Ziffernfolge ohne Trennzeichen außer einem Dezimalpunkt (.) vor Sekundenbruchteilen aufbereitet.

Die Standardeinstellung ist SPACE.

Initialwerte und ungültige Werte werden wie folgt behandelt:

  • Ein initialer Ausdruck vom Typ utclong wird als eine mit Leerzeichen gefüllte Zeichenkette dargestellt, deren Länge dem Ergebnis für einen gültigen Zeitstempel entspricht. Diese Länge hängt von den angegebenen Formatierungsoptionen ab. Ein ungültiger Wert führt zu einer behandelbaren Ausnahme der Klasse CX_SY_CONVERSION_NO_DATE_TIME.
  • Eine gepackte Zahl, die keinen gültigen Zeitstempel darstellt, wird dennoch wie ein Zeitstempel aufbereitet, wobei bei negativen Zahlen der Absolutwert betrachtet wird. Bei den Formaten USER und ENVIRONMENT wird vor dem Datum ein Stern "*" eingefügt und die letzte Stelle der Zeit abgeschnitten.

Hinweise

  • Zusätzlich zu TIMESTAMP kann mit der Formatierungsoption DECIMALS die Anzahl der Nachkommastellen beeinflusst werden. Andere Optionen, welche das Datums- und Zeitformat oder das Dezimaltrennzeichen ändern, können nicht angegeben werden. werden.
  • Mit der Option TIMEZONE kann Zeitzone angegeben werden, um die Datums- und Zeitanteile des Zeitstempels in entsprechende lokale Werte zu konvertieren.
  • Während für den Datentyp utclong das Zeitstempelformat ISO bereits vordefiniert ist, und auch ohne Formatierungsoption wirkt, ist für Zeitstempel in gepackten Zahlen das numerische Format vordefiniert. Ein als gepackte Zahl dargestellter Zeitstempel wird nur über Verwendung der Formatierungsoptionen TIMESTAMP oder TIMEZONE als Zeitstempel erkannt und aufbereitet.
  • Das Zeitstempelformat ISO hat keinen optional Zeitzonenbezeichner wie in ISO 8601 zugelassen.

Das Programm DEMO_STRING_TEMPLATE_TIMESTAMP zeigt die Verwendung der Zeitstempelformate. Ein Ausführen des Programms zeigt ihre Wirkung. Der folgende Quelltextabschnitt ist ein Ausschnitt aus dem Programm.

Mit folgenden Zuordnungen wird die Verwendung der Zeitstempelformate gezeigt.

Zeichenketten-Templates, Formatierungseinstellungen

Zusatz 17

... TIMEZONE = tz ...

Wirkung

Diese Formatierungsoption konvertiert die Datums- und Zeitinformation eines Zeitstempels gemäß des Regelwerks für Zeitzonen in das lokale Datum und die lokale Zeit der in tz angegebenen Zeitzone und bereitet das Ergebnis als Zeitstempel auf. Die Option TIMEZONE kann nur angegeben werden, wenn der eingebettete Ausdruck einen der folgenden Datentypen hat, sonst kommt es zu einem Syntax oder Laufzeitfehler:

Wenn die Option TIMESTAMP nicht angegeben ist, wird ein Ausdruck vom Typ utclong gemäß seinem vordefinierten Format aufbereitet. Ein Zeitstempel in einer gepackten Zahl wird wie mit der Angabe TIMESTAMP = SPACE aufbereitet. Wenn die Option TIMESTAMP angegeben ist, wirkt diese.

Für tz muss ein zeichenartiges Datenobjekt angegeben werden, das eine Zeitzone aus der DDIC-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 keine Zeitverschiebung berechnet. Die Konvertierung erfolgt wie bei den Anweisungen CONVERT UTCLONG bzw. CONVERT TIME STAMP beschrieben. Für den Zeitstempeltyp utclong gelten dabei die besonderen Regeln für die erste und letzte Sekunde.

Initiale Werte werden wie folgt behandelt:

  • Für den Zeitstempeltyp utclong wird eine mit Leerzeichen gefüllte Zeichenkette erzeugt, deren Länge dem Ergebnis für einen gültigen Zeitstempel entspricht.
  • Für Zeitstempel in gepackten Zahlen ist der Initialwert 0 ein ungültiger Wert und wird als solcher aufbereitet.

Die Fehlerbehandlung ist wie folgt:

  • Das Quellfeld enthält keinen gültigen Zeitstempel:
  • Für den Zeitstempeltyp utclong kommt es zu einer behandelbaren Ausnahme der Klasse CX_SY_CONVERSION_NO_DATE_TIME.

  • Zeitstempel in gepackten Zahlen werden dennoch wie ein Zeitstempel aufbereitet, wobei bei negativen Zahlen der Absolutwert betrachtet wird. Die angegebene Zeitzone spielt keine Rolle.

  • Der Wert von tz ist nicht in der DDIC-Datenbanktabelle TTZZ enthalten oder die Konvertierung würde einen lokalen Zeitpunkt außerhalb des Wertebereichs für lokales Datum und Zeit ergeben:
  • Für den Zeitstempeltyp utclong kommt es zu einer behandelbaren Ausnahme der Klasse CX_SY_CONVERSION_NO_DATE_TIME.

  • Für Zeitstempel in gepackten Zahlen wird implizit die Zeitzone "UTC" verwendet.

Hinweise

  • Die Nachkommastellen von Zeitstempeln können zusätzlich mit der Formatierungsoption DECIMALS festgelegt werden.
  • Anders als TIMESTAMP kann der Zusatz TIMEZONE auch mit der Formatierungsoption COUNTRY kombiniert werden, um das Datums- und Zeitformat zu beeinflussen.
  • Eine initiale Zeitzone tz entspricht nur dann der Angabe UTC, wenn die Tabellen des Regelwerks für Zeitzonen für die Zeitzone UTC richtig gefüllt sind.

Das Programm DEMO_STRING_TEMPLATE_TIMEZONE zeigt die Verwendung der Option TIMEZONE ohne Verwendung der Option TIMESTAMP aber auch in Verbindung mit der Option COUNTRY. Ein Ausführen des Programms zeigt ihre Wirkung.

Mit folgenden Zuordnungen wird die Verwendung der Option TIMEZONE ohne Verwendung der Option TIMESTAMP aber auch in Verbindung mit der Option COUNTRY gezeigt.

Zeichenketten-Templates, Zeitzonen

Zusatz 18

... 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 DDIC-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

  • Im Gegensatz zur Verwendung der Anweisung SET COUNTRY und dem Parameter ENVIRONMENT ist die Verwendung der Formatierungsoption COUNTRY nebenwirkungsfrei. Die Länderangabe wirkt nur auf den aktuellen eingebetteten Ausdruck und nicht auf alle nachfolgenden Anweisungen der aktuellen internen Sitzung.

Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom Inhalt der DDIC-Datenbanktabelle T005X die darunter gezeigte Zeichenkette.

1.000.000






Fill RESBD Structure from EBP Component Structure   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 72347 Date: 20240416 Time: 153348     sap01-206 ( 926 ms )