Zgradba izpisa
U ovoj temi ćemo pogledati neke primjere korištenja GetFormValue funkcije.
Dobivanje vrijednosti objekta iz PANTHEON prozora
U prvom primjeru napisat ćemo izraz koji vraća skladište na izdanima računima koji se nalazi u programskom izborniku 'Robno | Izvještaj o izdanima računima | Izdani računi/Izvještaj o marži profita'. Ime Pantheon prozora je 'PrometObracunIzdRac', ime okvira za potvrdu u kojem odabiremo skladište je 'fWarehouse'.
[GetFormValue('PrometObracunIzdRac.fWarehouse')]
Dobivanje vrijednosti iz PANTHEON Prozora s Dokumentom
Imena nekih prozora dokumenata sastavljena su od osnove i sufiksa koji predstavljaju vrstu dokumenta. Ako želimo ispisati referent na izdanju, zapišemo pojam
[GetFormValue('PrometIzdDob3000.fReferentZap')]
Vraća vrijednost samo u slučaju dokumenta tipa 3000. Da bismo vratili vrijednost za sve tipove dokumenata, moramo prepisati ovaj kod na
[GetFormValue('PrometIzdDob'+<tbLookPoslDog."acDocType">+'.fReferentZap')]
Gdje skup podataka "tbLookPoslDog" nije dostupan, možemo dobiti ime prozora iz broja dokumenta. Na izvještaju o narudžbama pišemo:
[IIF(Copy(<qReportIzpisD."acKeyView">,Pos('-',
<qReportIzpisD."acKeyView">)+4,1) ='-',
GetFormValue('Naroc'+Copy(<qReportIzpisD."acKeyView">,Pos('-',
<qReportIzpisD."acKeyView">)+1,3)+'0.fReferentZap'),
GetFormValue('Naroc'+Copy(<qReportIzpisD."acKeyView">,Pos('-',
<qReportIzpisD."acKeyView">)+1,4)+'.fReferentZap'))]
Primjer s datumom
Funkcija GetFormValue vraća datum u yyyy/mm/dd formatu. Želimo prikazati datum u dd.mm.yyyy ili d.m.yyyy formatu.
Najbolji primjer je kada nema podataka koji su potrebni u skupu podataka, postoje obavijesti o neizmirenim obvezama koje su u programu u 'Financije | Izvještaji | Neizmireni stavke'.
Sljedeći izraz vraća datum stanja u yyyy/mm/dd formatu:
[GetFormValue('GLOutstandingItems.edtDate')]
Pojam također ima nedostatak da ako datum nije unesen, vraća "1900/01/01" (što u ovom slučaju nije moguće).
Moramo provjeriti je li datum unesen prije ispisa s IIF funkcijom:
[IIF(GetFormValue('GLOutstandingItems.edtDate')= '1900/01/01','',
GetFormValue(''GLOutstandingItems.edtDate'))]
Ako želimo ispisati datum u formatu dd.mm.yyyy, trebamo promijeniti redoslijed brojeva na izvještaju:
[IIF(GetFormValue('GLOutstandingItems.edtDate') ='1900/01/01','',
Copy(GetFormValue('GLOutstandingItems.edtDate'),9,2)+'.'+
Copy(GetFormValue('GLOutstandingItems.edtDate'),6,2)+'.'+
Copy(GetFormValue('GLOutstandingItems.edtDate'),1,4))]
Datum u d.m.yyyy formatu dobiva se prebacivanjem dana u mjesecu i mjeseca u broj, a zatim natrag u tekst:
[IIF(GetFormValue('GLOutstandingItems.edtDate') ='1900/01/01','',
IntToStr(StrToInt(Copy(GetFormValue('GLOutstandingItems.edtDate'),9,2)))
+'.'+IntToStr(StrToInt(Copy(GetFormValue('GLOutstandingItems.edtDate'),6,2)))
+'.'+Copy(GetFormValue('GLOutstandingItems.edtDate'),1,4))]
Primjer s ne-tekstualnim objektom
The GetFormValue funkcija se također može koristiti za objekte koji ne predstavljaju tekst. U ovom slučaju, najvažnija značajka ove funkcionalnosti se vraća. Vraćena vrijednost obično nije pogodna za izravni ispis, ali je možemo koristiti na samom izvještaju. Na primjer, tekst se prikazuje u prozoru na ovoj vrijednosti.
Kao primjer, gledamo grupu radio gumba pod nazivom 'grpGroupBy' na izvještaju o kartici računa za primjer '32D- Kartica računa' koja se nalazi u programskom izborniku 'Financije | Izvještaji | Kartica računa'. Ime prozora je 'GLAccountCard'. Za ovu vrstu objekta funkcija vraća svojstvo 'ItemIndex' koje određuje koji je gumb odabran. U našem primjeru, ovo svojstvo određuje kako se podaci agregiraju i trake na izvještaju su skrivene. Vrijednost koju vraća funkcija zapisuje se u varijablu 'nGroupBy', a zatim, ovisno o njenoj vrijednosti, skrivamo trake na izvještaju, u proceduri "SubjektFooterOnBeforePrint".
var nGroupBy: Integer;
...
procedure SubjektFooterOnBeforePrint(Sender: TfrxComponent);
begin
if nGroupBy <= 1 then
SubjektFooter.Visible := False;
end;
...
nGroupBy := GetFormValue('GLAccountCard.grpGroupBy');