Formatarea valorilor
Formatarea
O caracteristică a funcțiilor agregate este că valorile numerice returnate nu sunt formatate, așa cum se arată în primul exemplu, care folosește “SUM”:

Câmpurile de date returnează de obicei o valoare formatată, care este pur și simplu afișată de obiectul “Text” fără nicio modificare. Pentru a aplica formatarea rezultatului “SUM”, să folosim instrumentele de formatare a valorilor din designer.
Selectați obiectul care conține suma și deschideți editorul de formate fie din 'Display Format...' din meniul său contextual, fie prin proprietatea “DisplayFormat” din inspectorul de obiecte.

Aceast editor listează categoriile de formate în stânga, formatele corespunzătoare în dreapta și șirul de format și separatorul zecimal pentru categoria și formatul selectat mai jos. Vom selecta categoria “Număr” și formatul "$1,234.50". Șirul de format este un argument pentru funcția Delphi "Format", pe care FastReport o folosește pentru a implementa formatarea numerelor. Șirul de format și separatorul zecimal pot fi schimbate. Dacă separatorul zecimal este lăsat gol, atunci se folosește valoarea curentă a setărilor regionale.
După ce faceți clic pe ОK și previzualizați raportul, veți vedea că suma din raport este acum formatată corect:

Observați combobox-ul din partea de sus a formularului de dialog. Dacă avem mai mult de o expresie într-un obiect, putem seta formatare diferită pentru fiecare expresie.
Așa cum puteți vedea în imagine, următoarele categorii de formatare sunt disponibile:
-
Text (fără formatare)
-
Număr
-
Data și ora
-
Boolean
Dacă nu este selectată nicio formatare pentru datele de dată și oră, acestea vor fi afișate în formatul specificat în sistemul de operare Windows.
 |
- Puteți introduce manual un format care nu este disponibil în listă.
- Puteți folosi șiruri de format acceptate de program pentru editarea foilor de calcul Excel.
- Specificațiile de format nu afectează formatul datelor care este setat în script.
- Specificațiile de format nu afectează datele stocate în baza de date.
|
Șiruri de format
Folosind exemplul, redimensionați subsolul și obiectul său și schimbați textul obiectului în acesta:
Total: [SUM(<Group."ItemsTotal">,MasterData1)]
Număr: [COUNT(MasterData1)]
Totalul și numărul de comenzi vor fi afișate în obiect.
În previzualizarea raportului, ambele valori sunt afișate în format monetar, pe care l-am setat anterior. Acest lucru este incorect:

Pentru a afișa fiecare valoare în formatul său corect, acestea trebuie să fie formatate individual. Pentru a face acest lucru, folosim etichete de format, care sunt plasate chiar înainte de paranteza pătrată de închidere a expresiei. În exemplul nostru, dezactivați formatarea pentru obiect (selectați categoria “Text (fără formatare)” în editorul de formate). Acum trebuie să specificăm formatul doar pentru prima expresie, deoarece a doua va fi afișată corect în mod implicit (adică ca un întreg). Schimbați textul obiectului după cum urmează:
Suma: [SUM(<Group."ItemsTotal">,MasterData1) #n%2,2m]
Număr: [COUNT(MasterData1)]
Previzualizați raportul pentru a vă asigura că obiectul este afișat corect:

Sintaxa generală a etichetelor de format este:
[expresie #eticheta_de_format]
Rețineți că caracterul de spațiu dintre expresie și simbolul “#” este obligatoriu! Eticheta de format în sine ar putea arăta astfel:
#nformat_șir – format numeric
#dformat_șir – format dată/oră
#bFalse,True – format boolean
Format_șir în fiecare caz este argumentul pentru funcția utilizată pentru formatare. Așadar, pentru formatarea numerică se folosește funcția Delphi Format, iar pentru dată/oră funcția 'FormatDateTime'. Sintaxa pentru aceste funcții poate fi găsită în sistemul de ajutor Delphi. Mai jos sunt câteva valori utilizate în FastReport:
pentru formatarea numerică:
%g – număr cu locuri minime după punctul zecimal
%2.2f – număr cu un număr fix de locuri după punctul zecimal
%2.2n – ca anterior, dar cu separator de mii
%2.2m – format monetar, acceptat de sistemul de operare Windows, dependent de setările regionale din panoul de control
 |
Fiți atenți când folosiți formatul %2.2m. Este corect doar pentru sume în moneda națională! |
O virgulă sau o linie pot fi folosite în locul punctului în format_șir pentru formatarea numerică. Acest simbol este folosit ca separator între partea întreagă și partea fracționară a valorii. Orice alt caracter nu este permis.
Exemple de formatare numerică Excel:
| Format |
Exemplu de rezultat |
| #0.00 |
1234,56 |
| #,##0.00 |
1.234,56 |
| #0 |
1235 |
pentru formatarea datei/oră:
| Format |
Exemplu de rezultat |
| dd.mm.yyyy |
data ca 05.06.2008 |
| d.m.yy |
data ca 5.6.08 |
| dd mmm yyyy |
data ca 05 Jun 2008 |
| dd mmmm yyyy |
data ca 05 iunie 2008 |
| ddd |
data ca Joi |
| dddd |
data ca Joi |
| hh:mm |
ora ca 08:07 |
| hh:mm:ss |
ora ca 08:07:06 |
| dd mmmm yyyy, hh:mm |
data și ora ca 5 iunie 2008, 08:07:06 |
Pentru formatarea cu tipul “#b” (boolean), format_șir este introdus ca două valori separate printr-o virgulă. Prima valoare corespunde lui “False” și a doua lui “True”.
Formatarea inline și funcțiile de format
Pentru formatare putem folosi și funcții pe care le scriem în cod. De exemplu, luați în considerare funcția "FormatFloat" pentru a formata numere.
Următoarele expresii scriu partea întreagă a numărului și primele două locuri zecimale:
[FormatFloat('#0', Int(n)]
[FormatFloat('00', Round(100 * Frac(n))))]
Formatarea datelor poate fi realizată și în cadrul expresiei (formatare inline), așa cum se arată în exemplul de mai jos
Azi este [NOW #d dddd], [NOW #d d.m.yyyy], ora este [NOW #d hh.mm.ss].
În obiectul "RichText", formatarea inline este singura modalitate posibilă de formatare.