Displayformat
Zuletzt geändert: 12.06.2023 04:21

Display-Format (Pascal-Script) #

In der SQL-Registry kann in den Felddefinitionen für Felder ein Display-Format vorgegeben werden.

935cdec9-3401-43e3-a204-498a7d7531bd

Diese Formate unterliegen gewissen Regeln, die hier beschrieben werden. Neben Anzeigeformaten innerhalb der Bildschirmmasken werden die selben Ausgabeformate für die Reports benutzt.

Für Bildschirmfelder kann zusätzlich auch ein EditFormat definiert werden, das den selben Aufbau wie das Displayformat besitzt. Alle Anzeigeformate werten die internationalen Einstellungen des Betriebssystems aus. Die Sytnax-Eingabe ist dementsprechend international (Englisch).

Numerische Felder wie ganzzahlige und Fliesskommazahlen, werden bei der Formatierung von Datums- und Zeitfeldern unterschieden.

Die Syntax entspricht der Formatierung, wie sie in der Programmiersprache Delphi benutzt wird.

Numerische Felder #

Für numerische Felder sind folgende Formate möglich.

Zeichen Beschreibung
0 Platzhalter für Ziffer. Wenn der formatierte Wert an der Stelle eine Ziffer enthält, an der im Format-String das Zeichen 0 (Null) steht, wird die betreffende Ziffer in den Ausgabe-String übernommen. Andernfalls erscheint im Ausgabe-String an dieser Position eine Null.
# Platzhalter für Ziffer. Wenn der formatierte Wert an der Stelle eine Ziffer enthält, an der im Format-String das Zeichen # steht, dann wird diese Ziffer in den Ausgabe-String übernommen. Andernfalls wird an der betreffenden Position im Ausgabe-String nichts gespeichert.
. Dezimalpunkt. Der erste Punkt im Format-String bestimmt die Position des Dezimaltrennzeichens im formatierten Wert. Alle weiteren Punktzeichen werden ignoriert. Das Zeichen, das im Ausgabe-String tatsächlich als Dezimaltrennzeichen erscheint, wird Windows-Systemsteuerung unter Ländereinstellungen definiert (Register Eigenschaften von Ländereinstellungen, Registerkarte Zahlen).
, Tausendertrennzeichen. Wenn der Format-String ein oder mehrere Kommazeichen enthält, werden im Ausgabe-String alle Stellen links vom Dezimaltrennzeichen in Dreiergruppen gegliedert, die jeweils durch ein Tausendertrennzeichen getrennt sind. Um zu kennzeichnen, dass ein Tausendertrennzeichen gewünscht wird, ist es nicht von Bedeutung, wie viele Kommas der Format-String enthält. Auch die Position ist beliebig. Das Zeichen, das im Ausgabe-String tatsächlich als Tausendertrennzeichen erscheint, wird Windows-Systemsteuerung unter Ländereinstellungen definiert (Register Eigenschaften von Ländereinstellungen, Registerkarte Zahlen).
E+ Wissenschaftliche Notation. Sobald der Format-String einen der Bezeichner „E+“, „E-„, „e+“ oder „e-„ enthält, wird die formatierte Zahl in wissenschaftlicher Notation dargestellt. Unmittelbar nach „E+“, „E-„, „e+“ oder „e-„ kann eine Gruppe von bis zu vier Nullen folgen, mit denen die minimale Stellenzahl im Exponenten festgelegt wird. Die beiden Kürzel „E+“ und „e+“ bewirken, dass sowohl positive als auch negative Exponenten mit einem Vorzeichen versehen werden. Die Kürzel „E-„ und „e-„ bewirken, dass nur negative Exponenten ein Vorzeichen erhalten.
‘xx’/“xx“ Alle Zeichen, die in halbe oder ganze Anführungszeichen eingeschlossen sind, werden unverändert in den Ausgabe-String übernommen und beeinflussen die Formatierung nicht.
; Ein Semikolon trennt im Format-String die Bereiche für positive und negative Zahlen.
$ Währungssymbol-Platzhalter. Dieses Symbol wird nur in der Routine FormatFloatLCID unterstützt und muss am Anfang oder am Ende des FormatStrings stehen. Die Position Anfang oder Ende hat nichts mit der später erzeugten Position des Währungsymbols zu tun. Diese wird ausschließlich aus Windows ermittelt und dort hinterlegte Gebiets-Schema. Die LCID gibt das Gebiets-Schema vor.

Innerhalb des Format-Strings bestimmt die Position des am weitesten links stehenden Nullzeichens zusammen mit der Position des am weitesten rechts stehenden Nullzeichens (bezogen auf das Dezimaltrennzeichen) die Anzahl der Stellen, die immer im Ausgabe-String angezeigt werden.

Die darzustellende Zahl wird bei der Formatierung stets auf die Anzahl von Nachkommastellen gerundet, die durch die Anzahl der Ziffern-Platzhalter („0“ oder „#“) rechts vom Dezimaltrennzeichen vorgegeben ist. Fehlt im Format-String ein Dezimaltrennzeichen, wird der formatierte Wert auf die nächste ganze Zahl gerundet.

Wenn die festgelegte Anzahl von Vorkommastellen nicht ausreicht, um eine Zahl darzustellen, werden vor dem ersten Ziffern-Platzhalter zusätzliche Stellen eingefügt.

Display- Format Wert Ergebnis Hinweis
#.## 12.2 12.2 links vom Dezimalzeichen wird die zusätzliche Ziffer immer angezeigt.
#.00 2.5 2.50 Zusätzliche Null: Es werden immer zwei Dezimalstellen angezeigt.
00.## .006 00.01 Rechts vom Dezimalzeichen werden zusätzliche Nullen angezeigt und es wird auf zwei Dezimalstellen gerundet.

Das Semikolon gliedert den Format-String in bis zu drei Teile, in denen jeweils eine eigene Formatierung für positive und negative Zahlen sowie für Nullen definiert werden kann.

  • Ein Abschnitt: Der Format-String gilt für alle Werte.
  • Zwei Abschnitte: Der erste Abschnitt gilt für positive Werte, der zweite für negative.
  • Drei Abschnitte: Der erste Abschnitt gilt für positive Werte, der zweite für negative und der dritte für Nullen.

Wenn der Abschnitt für negative Werte oder der Abschnitt für Nullen leer ist, wenn also zwischen den Semikolons nichts steht, wird statt dessen der Abschnitt für positive Werte verwendet.

Wenn der Abschnitt für positive Zahlen leer ist oder der gesamte Format-String leer ist, erfolgt eine standardisierte Gleitkommaformatierung mit 15 signifikanten Stellen. Das gleiche gilt, wenn der Wert mehr als 18 Vorkommastellen besitzt und im Format-String keine wissenschaftliche Notation festgelegt wurde.

Datums-Felder #

Für Datums-Felder sind folgende Formate möglich.

Zeichen Beschreibung
c Das Datum durch ein intern festgelegtes Format, gefolgt von der Zeit dargestellt. Die Zeit wird nicht angezeigt, wenn der Nachkommaanteil des Datums-/Zeitwertes gleich Null ist. Intern wird ein Datum als Fliesskommazahl dargestellt. Der ganzzahlige Anzeil ist das Datum, der Nachkommaanteil ist die Uhrzeit.
d Der Tag als Zahl ohne führende Null (1-31).
dd Der Tag als Zahl mit führender Null (01-31).
ddd Der Tag als Abkürzung (So-Sa)
dddd Der Tag als vollständiger Name (Sonntag-Samstag)
ddddd Internes Datums-Kurzformat wird verwendet.
dddddd Internes Datums-Langformat wird verwendet.
m Der Monat als Zahl ohne führende Null (1-12). Wenn der Bezeichner m unmittelbar auf ein h oder hh folgt, wird nicht der Monat, sondern die Minute angezeigt.
mm Der Monat als Zahl mit führender Null (01-12). Wenn der Bezeichner mm unmittelbar auf ein h oder hh folgt, wird nicht der Monat, sondern die Minute angezeigt.
mmm Der Monat als Abkürzung (Jan-Dez).
mmmm Der Monat als vollständiger Name (Januar-Dezember) .
yy Das Jahr als zweistellige Zahl (00-99).
yyyy Das Jahr als vierstellige Zahl (0000-9999).
h Die Stunde ohne führende Null (0-23).
hh Die Stunde mit führender Null (00-23).
n Die Minute ohne führende Null (0-59).
nn Die Minute mit führender Null (00-59).
s Die Sekunde ohne führende Null (0-59).
ss Die Sekunde mit führender Null (00-59).
t Die Zeit wird durch das interne Kurz-Format festgelegt.
tt Die Zeit wird durch das interne Lang-Format festgelegt.
am/pm Die Zeit im 12-Stunden-Format für den vorangehenden Bezeichner h oder hh, gefolgt von „am“ für die Stunden vor Mittag oder „pm“ für die Stunden nach Mittag. Für die Bezeichner am/pm können sowohl Groß- oder Kleinbuchstaben als auch beide gemeinsam verwendet werden. Das Ergebnis wird entsprechend angezeigt.
a/p Die Zeit im 12-Stunden-Format für den vorangehenden Bezeichner h oder hh, gefolgt von „a“ für die Stunden vor Mittag oder „p“ für die Stunden nach Mittag. Für die Bezeichner a/p können sowohl Groß- oder Kleinbuchstaben als auch beide gemeinsam verwendet werden.
ampm Die Zeit im 12-Stunden-Format für den vorangehenden Bezeichner h oder hh, gefolgt intern festgelegten Namensbezeichner.
/ Das Datumstrennzeichen, das aus der internationalen Einstellung von Windows entnommen wird.
: Das Zeittrennzeichen, das aus der internationalen Einstellung von Windows entnommen wird.
‘xx’/“xx“ Zeichen, die in halbe oder ganze Anführungszeichen eingeschlossen sind, werden ohne weitere Formatierung angezeigt.

Als Formatbezeichner können Sie sowohl Groß- als auch Kleinbuchstaben verwenden. Das Ergebnis ist in beiden Fällen dasselbe.

Wenn der im Formatparameter festgelegte String leer ist, wird der Datums- und Zeitwert so formatiert, als ob der Formatbezeichner c angegeben wäre.

StringMask-Felder #

Zeichen Bedeutung in der Maske
! Wird in der Maske das Zeichen ! verwendet, werden optionale Zeichen im zurückgegebenen String als führende Leerzeichen dargestellt. Fehlt das Zeichen !, werden optionale Zeichen im zurückgegebenen String als abschließende Leerzeichen dargestellt.
> Wird in der Maske das Zeichen > verwendet, sind alle folgenden Zeichen bis zum Ende der Maske oder bis zum Zeichen < großbuchstaben.< />
< Wird in der Maske das Zeichen < verwendet, sind alle folgenden zeichen bis zum ende der maske oder bis zum zeichen> Kleinbuchstaben.
<> Werden in der Maske diese beiden Zeichen zusammen verwendet, wird keine Prüfung der Groß-/Kleinschreibung durchgeführt, und die Zeichen werden so formatiert, wie sie im Parameter Value vorliegen.
** Das Zeichen, das auf \ folgt, soll als literales Zeichen interpretiert werden. Verwenden Sie dieses Zeichen, wenn eines der Maskenzeichen buchstäblich ausgegeben werden soll.
L Das Zeichen L fordert einen Buchstaben an dieser Position (in Deutschland A-Z und a-z).
l Das Zeichen l erlaubt ausschließlich einen Buchstaben an dieser Position, fordert ihn aber nicht.
A Das Zeichen A fordert ein alphanumerisches Zeichen an dieser Position.
a Das Zeichen a erlaubt ein alphanumerisches Zeichen an dieser Position, fordert es aber nicht.
C Das Zeichen C fordert ein beliebiges Zeichen an dieser Position.
c Das Zeichen c erlaubt ein beliebiges Zeichen an dieser Position, fordert es aber nicht.
0 Das Zeichen 0 fordert ein numerisches Zeichen an dieser Position.
9 Das Zeichen 9 erlaubt ein numerisches Zeichen an dieser Position, fordert es aber nicht.
# Das Zeichen # erlaubt ein numerisches Zeichen oder ein Plus- bzw. Minuszeichen an dieser Position, fordert es aber nicht.
: Das Zeichen : dient dazu, in Zeitangaben Stunden, Minuten und Sekunden voneinander zu trennen. Wenn die Ländereinstellungen in der Systemsteuerung Ihres Rechners ein anderes Trennzeichen vorsehen, wird dieses anstelle von : verwendet.
/ Das Zeichen / dient dazu, in Datumsangaben Jahr, Monat und Tag voneinander zu trennen. Wenn die Ländereinstellungen in der Systemsteuerung Ihres Rechners ein anderes Trennzeichen vorsehen, wird dieses anstelle von / verwendet.
; Das Zeichen ; trennt die drei Felder der Maske voneinander.
_ Das Zeichen _ setzt automatisch Leerzeichen in den zurückgegebenen String ein.

Jedes Zeichen, das nicht in dieser Tabelle enthalten ist, kann im ersten Teil der Maske als Literal angegeben werden. Literale Zeichen werden automatisch eingefügt, wenn der zweite Teil der Maske 0 ist. Bei jedem anderen Wert im zweiten Teil der Maske werden die literalen Zeichen mit den Zeichen im Parameter Value verglichen. Auch die Maskenzeichen selbst können als Literale verwendet werden, wenn ihnen ein umgekehrter Schrägstrich () vorangeht.

Das zweite Feld der Maske enthält ein einziges Zeichen, das angibt, ob die literalen Zeichen der Maske im Parameter Value enthalten sind. Die Maske für eine Telefonnummer mit Vorwahl könnte beispielsweise so aussehen:

(000)_000-0000;0;*

Die 0 im zweiten Feld besagt, dass der Parameter Value aus den zehn Ziffern der Telefonnummer bestehen soll, nicht aus den 14 Zeichen, aus denen der endgültige String gebildet wird.

Eine 0 im zweiten Feld gibt an, dass Literale in den Value-String eingefügt werden, alle anderen Zeichen geben an, dass sie einbezogen werden sollen. Das Zeichen, das festlegt, ob Literale einbezogen werden, kann in der typisierten Konstante MaskNoSave, die in der Unit Mask deklariert ist, geändert werden.

Das dritte Feld der Maske ist das Zeichen, das im zurückgegebenen String für Leerzeichen eingesetzt wird (Zeichen, die nicht in Value erscheinen). Standardmäßig ist dies dasselbe Zeichen, das für literale Leerzeichen steht. Dei beiden Zeichen werden im Rückgabe-String identisch dargestellt.

Hinweis

Wenn Sie mit Multibyte-Zeichensätzen arbeiten, steht jedes Maskenzeichen für ein Byte. Wenn Sie also die Maskenzeichen L, l, A, a, C oder c auf Doppelbyte-Zeichen anwenden, müssen Sie auch die Maskenzeichen duplizieren. LL steht beispielsweise für zwei numerische Einzelbyte-Zeichen oder für ein Doppelbyte-Zeichen. Als literale Zeichen werden nur Einzelbyte-Zeichen unterstützt.