Formatiranje vrednosti
Formatiranje
Karakteristika agregatnih funkcija je da vraćene numeričke vrednosti nisu formatirane, kao što je prikazano u prvom primeru, koji koristi “SUM”:

Polja podataka obično vraćaju formatiranu vrednost, koja se jednostavno prikazuje putem “Text” objekta bez ikakvih promena. Da bismo primenili formatiranje na “SUM” rezultat, koristimo alate za formatiranje vrednosti u dizajneru.
Izaberite objekat koji sadrži sumu i otvorite uređivač formata bilo iz 'Display Format...' u njegovom kontekstualnom meniju ili kroz svojstvo “DisplayFormat” u inspektoru objekta.

Ovaj uređivač prikazuje kategorije formata s leve strane, odgovarajuće formate s desne strane i format string i decimalni separator za izabranu kategoriju i format ispod. Izabraćemo kategoriju “Number” i format "$1,234.50". Format string je argument za Delphi "Format" funkciju, koju FastReport koristi za implementaciju formatiranja brojeva. Format string i decimalni separator mogu se promeniti. Ako je decimalni separator ostavljen prazan, koristi se trenutna vrednost regionalnog podešavanja.
Posle klika na ОK i pregledanja izveštaja videćete da je suma u izveštaju sada ispravno formatirana:

Obratite pažnju na combobox na vrhu dijaloga. Ako imamo više od jednog izraza u objektu, možemo postaviti različito formatiranje za svaki izraz.
Kao što možete videti na slici, sledeće kategorije formatiranja su dostupne:
-
Tekst (bez formatiranja)
-
Broj
-
Datum i vreme
-
Boolean
Ako nije izabrano formatiranje za podatke o datumu i vremenu, oni će se prikazivati u formatu koji je specificiran u Windows OS-u.
 |
- Možete ručno uneti format koji nije dostupan na listi.
- Možete koristiti format stringove koje program podržava za uređivanje Excel tabela.
- Specifikacije formata ne utiču na format podataka koji je postavljen u skripti.
- Specifikacije formata ne utiču na podatke pohranjene u bazi podataka.
|
Format stringovi
Korišćenjem primera, promenite veličinu podnožja i njegovog objekta i promenite tekst objekta na ovo:
Ukupno: [SUM(<Group."ItemsTotal">,MasterData1)]
Broj: [COUNT(MasterData1)]
Ukupno i broj narudžbina biće prikazani u objektu.
U pregledu izveštaja, obe ove vrednosti su prikazane u novčanom formatu, koji smo prethodno postavili. Ovo je netačno:

Da bi se svaka vrednost prikazala u ispravnom formatu, potrebno je da budu formatirane pojedinačno. Da bismo to uradili, koristimo oznake formata, koje se postavljaju neposredno pre zatvarajuće uglaste zagrade izraza. U našem primeru, onemogućite formatiranje za objekat (izaberite kategoriju “Tekst (bez formatiranja)” u uređivaču formata). Sada treba da odredimo format samo za prvi izraz, dok će se drugi prikazati ispravno po defaultu (tj. kao ceo broj). Promenite tekst objekta na sledeći način:
Suma: [SUM(<Group."ItemsTotal">,MasterData1) #n%2,2m]
Broj: [COUNT(MasterData1)]
Pregledajte izveštaj da biste se uverili da je objekat ispravno prikazan:

Opšta sintaksa oznaka formata je:
[izraz #oznakafomata]
Obratite pažnju da je razmak između izraza i simbola “#” obavezan! Sama oznaka formata može izgledati ovako:
#nformat_string – numerički format
#dformat_string – datum/vreme format
#bFalse,True – boolean format
Format_string u svakom slučaju je argument funkcije koja se koristi za formatiranje. Dakle, za numeričko formatiranje koristi se Delphi Format funkcija, a za datum/vreme 'FormatDateTime' funkcija. Sintaksa za ove funkcije može se naći u Delphi sistemu pomoći. Ispod su navedene nekoliko vrednosti korišćenih u FastReport:
za numeričko formatiranje:
%g – broj sa minimalnim mestima posle decimalne tačke
%2.2f – broj sa fiksnim brojem mesta posle decimalne tačke
%2.2n – kao prethodni, ali sa separatorom za hiljade
%2.2m – novčani format, prihvaćen od strane Windows OS-a, zavistan od regionalnih podešavanja u kontrolnoj tabli
 |
Budite oprezni kada koristite format %2.2m. Ispravan je samo za iznose u domaćoj valuti! |
Zapeta ili crtica mogu se koristiti umesto tačke u format_string za numeričko formatiranje. Ovaj simbol se koristi kao separator između celog i decimalnog dela vrednosti. Bilo koji drugi karakter nije dozvoljen.
Primeri numeričkog formatiranja u Excel-u:
Format |
Primer rezultata |
#0.00 |
1234,56 |
#,##0.00 |
1.234,56 |
#0 |
1235 |
za formatiranje datuma/vremena:
Format |
Primer rezultata |
dd.mm.yyyy |
datum kao 05.06.2008 |
d.m.yy |
datum kao 5.6.08 |
dd mmm yyyy |
datum kao 05 Jun 2008 |
dd mmmm yyyy |
datum kao 05 Jun 2008 |
ddd |
datum kao Čet |
dddd |
datum kao Četvrtak |
hh:mm |
vreme kao 08:07 |
hh:mm:ss |
vreme kao 08:07:06 |
dd mmmm yyyy, hh:mm |
datum i vreme kao 5 Jun 2008, 08:07:06 |
Za formatiranje sa tipom “#b” (boolean), format_string se unosi kao dve vrednosti odvojene zarezom. Prva vrednost odgovara “False”, a druga “True”.
Inline formatiranje i funkcije formata
Za formatiranje možemo takođe koristiti funkcije koje pišemo u kodu. Na primer, razmotrite funkciju "FormatFloat" za formatiranje brojeva.
Sledeći izrazi ispisuju celu deo broja i prva dva decimalna mesta:
[FormatFloat('#0', Int(n)]
[FormatFloat('00', Round(100 * Frac(n))))]
Formatiranje podataka može se takođe obaviti unutar izraza (inline formatiranje), kao što je prikazano u sledećem primeru
Danas je [NOW #d dddd], [NOW #d d.m.yyyy], vreme je [NOW #d hh.mm.ss].
U "RichText" objektu inline formatiranje je jedini mogući način formatiranja.