Форматирање на вредности
Форматирање
Карактеристика на агрегатните функции е што враќаните бројчани вредности не се форматирани, како што е прикажано во првиот пример, кој користи “SUM”:

Податоците обично враќаат форматирана вредност, која едноставно се прикажува од објектот “Text” без никаква промена. За да примениме форматирање на резултатот “SUM”, да ги користиме алатките за форматирање на вредности во дизајнерот.
Изберете го објектот кој содржи збир и отворете го уредникот за форматирање или од 'Display Format...' во неговото контекстно мени или преку својството “DisplayFormat” во инспекторот за објекти.

Овој уредник ги наведува категориите на формати лево, соодветните формати десно и форматот на низата и децималниот разделник за избраната категорија и формат подолу. Ќе ја избереме категоријата “Број” и форматот "$1,234.50". Форматот на низата е аргумент за функцијата Delphi "Format", која FastReport ја користи за имплементација на форматирање на броеви. Форматот на низата и децималниот разделник можат да се променат. Ако децималниот разделник е оставен празен, тогаш се користи моменталната вредност на регионалната конфигурација.
По кликнувањето на ОК и прегледувањето на извештајот, ќе видите дека збирот во извештајот сега е форматиран правилно:

Забележете го комбобоксот на врвот на дијалог формата. Ако имаме повеќе од еден израз во објект, можеме да поставиме различно форматирање за секој израз.
Како што можете да видите на сликата, следните категории на формати се достапни:
-
Текст (без форматирање)
-
Број
-
Датум и време
-
Булев
Ако не е избрано форматирање за податоците за датум и време, тие ќе се прикажуваат во форматот специфициран во Windows OS.
 |
- Можете рачно да внесете формат кој не е достапен во листата.
- Можете да користите форматски низи поддржани од програмата за уредување на табеларни документи Excel.
- Спецификациите за формат не влијаат на форматот на податоците што е поставен во скриптата.
- Спецификациите за формат не влијаат на податоците складирани во базата на податоци.
|
Форматски низи
Користејќи го примерот, променете ја големината на подножјето и неговиот објект и променете го текстот на објектот на следново:
Вкупно: [SUM(<Group."ItemsTotal">,MasterData1)]
Број: [COUNT(MasterData1)]
Вкупната и бројот на нарачки ќе бидат прикажани во објектот.
Во прегледот на извештајот, и двете вредности се прикажани во монетарен формат, кој претходно го поставивме. Ова е неправилно:

За да се прикаже секоја вредност во нејзиниот правилен формат, тие треба да се форматираат поединечно. За да го направиме ова, користиме форматски ознаки, кои се поставуваат непосредно пред затворената квадратна заграда на изразот. Во нашиот пример, исклучете го форматирањето за објектот (изберете ја категоријата “Текст (без форматирање)” во уредникот за форматирање). Сега треба да го специфицираме форматирањето само за првиот израз, бидејќи вториот ќе биде прикажан правилно по подразбирање (т.е. како цел број). Променете го текстот на објектот на следниов начин:
Збир: [SUM(<Group."ItemsTotal">,MasterData1) #n%2,2m]
Број: [COUNT(MasterData1)]
Прегледајте го извештајот за да се уверите дека објектот е прикажан правилно:

Општата синтакса на форматските ознаки е:
[израз #форматска ознака]
Забележете дека просторот помеѓу изразот и симболот “#” е задолжителен! Форматската ознака сама по себе може да изгледа вака:
#nформат_низa – бројчани формат
#dформат_низa – формат за датум/време
#bFalse,True – булев формат
Формат_низa во секој случај е аргумент за функцијата користена за форматирање. Значи, за бројчано форматирање се користи функцијата Delphi Format, а за датум/време функцијата 'FormatDateTime'. Синтаксата за овие функции може да се најде во системот за помош на Delphi. Подолу се неколку вредности користени во FastReport:
за бројчано форматирање:
%g – број со минимален број места по децималната точка
%2.2f – број со фиксна бројка на места по децималната точка
%2.2n – како претходно, но со разделник за илјадници
%2.2m – монетарен формат, прифатен од Windows OS, зависен од регионалните поставки во контролниот панел
 |
Внимавајте кога користите формат %2.2m. Тој е точен само за износи во домашна валута! |
Запетата или цртичката можат да се користат наместо точката во формат_низa за бројчано форматирање. Овој симбол се користи како разделник помеѓу целосниот и дробниот дел на вредноста. Секој друг карактер не е дозволен.
Примери за формат на броеви во Excel:
Формат |
Резултатен пример |
#0.00 |
1234,56 |
#,##0.00 |
1.234,56 |
#0 |
1235 |
за форматирање на датум/време:
Формат |
Резултатен пример |
dd.mm.yyyy |
датум како 05.06.2008 |
d.m.yy |
датум како 5.6.08 |
dd mmm yyyy |
датум како 05 Jun 2008 |
dd mmmm yyyy |
датум како 05 Јуни 2008 |
ddd |
датум како Четврток |
dddd |
датум како Четврток |
hh:mm |
време како 08:07 |
hh:mm:ss |
време како 08:07:06 |
dd mmmm yyyy, hh:mm |
датум и време како 5 Јуни 2008, 08:07:06 |
За форматирање со типот “#b” (булев), формат_низa се внесува како две вредности одделени со запета. Првата вредност одговара на “False” а втората на “True”.
Инлајн форматирање и формат функции
За форматирање можеме да користиме и функции кои ги пишуваме во кодот. На пример, разгледајте ја функцијата "FormatFloat" за форматирање на броеви.
Следните изрази ги пишуваат целосниот дел од бројот и неговите први две децимални места:
[FormatFloat('#0', Int(n)]
[FormatFloat('00', Round(100 * Frac(n))))]
Формирањето на податоците може да се направи и во рамките на изразот (инлајн форматирање), како што е прикажано во примерот подолу
Денес е [NOW #d dddd], [NOW #d d.m.yyyy], времето е [NOW #d hh.mm.ss].
Во објектот "RichText" инлајн форматирањето е единствениот можен начин на форматирање.