Formatierung von Werten
Formatierung
Ein Merkmal von Aggregatfunktionen ist, dass die zurückgegebenen numerischen Werte nicht formatiert sind, wie im ersten Beispiel gezeigt, das „SUM“ verwendet:

Datensätze geben normalerweise einen formatierten Wert zurück, der einfach vom „Text“-Objekt ohne Änderungen angezeigt wird. Um die Formatierung des „SUM“-Ergebnisses anzuwenden, verwenden wir die Wertformatierungswerkzeuge im Designer.
Wählen Sie das Objekt mit der Summe aus und öffnen Sie den Format-Editor entweder über 'Anzeigeformat...' im Kontextmenü oder über die Eigenschaft „DisplayFormat“ im Objektinspektor.

Dieser Editor listet die Formatkategorien links, die entsprechenden Formate rechts und die Formatzeichenfolge sowie das Dezimaltrennzeichen für die ausgewählte Kategorie und das Format darunter auf. Wir wählen die Kategorie „Zahl“ und das Format "$1,234.50". Die Formatzeichenfolge ist ein Argument für die Delphi "Format"-Funktion, die FastReport zur Implementierung der Zahlenformatierung verwendet. Die Formatzeichenfolge und das Dezimaltrennzeichen können geändert werden. Wenn das Dezimaltrennzeichen leer gelassen wird, wird der aktuelle regionale Wert verwendet.
Nachdem Sie auf OK geklickt und den Berichtsvorschau angezeigt haben, werden Sie sehen, dass die Summe im Bericht jetzt korrekt formatiert ist:

Beachten Sie das Kombinationsfeld oben im Dialogfeld. Wenn wir mehr als einen Ausdruck in einem Objekt haben, können wir für jeden Ausdruck unterschiedliche Formatierungen festlegen.
Wie Sie auf dem Bild sehen können, sind die folgenden Formatkategorien verfügbar:
Wenn keine Formatierung für Daten und Uhrzeiten ausgewählt ist, werden sie im Format angezeigt, das im Windows-Betriebssystem angegeben ist.
 |
- Sie können ein Format manuell eingeben, das in der Liste nicht verfügbar ist.
- Sie können Formatzeichenfolgen verwenden, die vom Programm zur Bearbeitung von Excel-Tabellen unterstützt werden.
- Format-Spezifikationen beeinflussen nicht das Datenformat, das im Skript festgelegt ist.
- Format-Spezifikationen beeinflussen nicht die in der Datenbank gespeicherten Daten.
|
Formatzeichenfolgen
Verwenden Sie das Beispiel, um die Fußzeile und ihr Objekt zu ändern und den Objekttext wie folgt zu ändern:
Gesamt: [SUM(<Group."ItemsTotal">,MasterData1)]
Zahl: [COUNT(MasterData1)]
Die Gesamtzahl und die Anzahl der Bestellungen werden im Objekt angezeigt.
In der Berichtsvorschau werden beide Werte im monetären Format angezeigt, das wir zuvor festgelegt hatten. Dies ist nicht korrekt:

Um jeden Wert im richtigen Format anzuzeigen, müssen sie einzeln formatiert werden. Dazu verwenden wir Format-Tags, die direkt vor der schließenden eckigen Klammer des Ausdrucks platziert werden. In unserem Beispiel deaktivieren wir die Formatierung für das Objekt (wählen Sie die Kategorie „Text (keine Formatierung)“ im Format-Editor). Jetzt müssen wir das Format nur für den ersten Ausdruck angeben, da der zweite standardmäßig korrekt angezeigt wird (d.h. als Ganzzahl). Ändern Sie den Objekttext wie folgt:
Summe: [SUM(<Group."ItemsTotal">,MasterData1) #n%2,2m]
Zahl: [COUNT(MasterData1)]
Vorschau des Berichts, um sicherzustellen, dass das Objekt korrekt angezeigt wird:

Die allgemeine Syntax der Format-Tags ist:
[Ausdruck #Format-Tag]
Beachten Sie, dass das Leerzeichen zwischen dem Ausdruck und dem „#“-Symbol obligatorisch ist! Das Format-Tag selbst könnte so aussehen:
#nformat_string – numerisches Format
#dformat_string – Datum/Uhrzeit-Format
#bFalse,True – boolesches Format
Format_string ist in jedem Fall das Argument für die Funktion, die zur Formatierung verwendet wird. Für die numerische Formatierung wird die Delphi Format-Funktion verwendet, und für Datum/Uhrzeit die 'FormatDateTime'-Funktion. Die Syntax für diese Funktionen finden Sie im Delphi-Hilfesystem. Im Folgenden sind mehrere Werte aufgeführt, die in FastReport verwendet werden:
für die numerische Formatierung:
%g – Zahl mit minimalen Stellen nach dem Dezimalpunkt
%2.2f – Zahl mit einer festen Anzahl von Stellen nach dem Dezimalpunkt
%2.2n – wie vorher, aber mit Tausendertrennzeichen
%2.2m – monetäres Format, das vom Windows-Betriebssystem akzeptiert wird, abhängig von den regionalen Einstellungen in der Systemsteuerung
 |
Seien Sie vorsichtig bei der Verwendung des Formats %2.2m. Es ist nur für Beträge in der Landeswährung korrekt! |
Ein Komma oder ein Bindestrich kann anstelle des Punkts in der format_string für die numerische Formatierung verwendet werden. Dieses Symbol wird als Trennzeichen zwischen dem ganzzahligen und dem Bruchteil des Wertes verwendet. Jedes andere Zeichen ist nicht erlaubt.
Beispiele für die numerische Formatierung in Excel:
| Format |
Beispielergebnis |
| #0.00 |
1234,56 |
| #,##0.00 |
1.234,56 |
| #0 |
1235 |
für die Datum/Uhrzeit-Formatierung:
| Format |
Beispielergebnis |
| dd.mm.yyyy |
Datum als 05.06.2008 |
| d.m.yy |
Datum als 5.6.08 |
| dd mmm yyyy |
Datum als 05 Jun 2008 |
| dd mmmm yyyy |
Datum als 05 Juni 2008 |
| ddd |
Datum als Do |
| dddd |
Datum als Donnerstag |
| hh:mm |
Zeit als 08:07 |
| hh:mm:ss |
Zeit als 08:07:06 |
| dd mmmm yyyy, hh:mm |
Datum und Uhrzeit als 5 Juni 2008, 08:07:06 |
Für die Formatierung mit dem Typ „#b“ (boolesch) wird die format_string als zwei durch ein Komma getrennte Werte eingegeben. Der erste Wert entspricht „False“ und der zweite „True“.
Inline-Formatierung und Formatfunktionen
Für die Formatierung können wir auch Funktionen verwenden, die wir im Code schreiben. Betrachten Sie beispielsweise die Funktion "FormatFloat", um Zahlen zu formatieren.
Die folgenden Ausdrücke geben den ganzzahligen Teil der Zahl und die ersten beiden Dezimalstellen aus:
[FormatFloat('#0', Int(n)]
[FormatFloat('00', Round(100 * Frac(n))))]
Die Datenformatierung kann auch innerhalb des Ausdrucks (Inline-Formatierung), wie im folgenden Beispiel gezeigt, erfolgen
Heute ist [NOW #d dddd], [NOW #d d.m.yyyy], die Uhrzeit ist [NOW #d hh.mm.ss].
Im "RichText"-Objekt ist die Inline-Formatierung die einzige mögliche Art der Formatierung.