Zgradba izpisa
U ovoj temi ćemo pogledati neke primjere korištenja GetFormValue funkcije.
Dobijanje vrijednosti objekta iz PANTHEON prozora
U prvom primjeru ćemo napisati izraz koji vraća skladište na izdatim fakturama koje je u programskom meniju 'Robni | Izvještaj o izdatim fakturama | Izdate fakture/Izvještaj o marži profita'. Ime Pantheon prozora je 'PrometObracunIzdRac', ime okvira za izbor u kojem biramo skladište je 'fWarehouse'.
[GetFormValue('PrometObracunIzdRac.fWarehouse')]
Dobijanje vrijednosti iz PANTHEON Prozora sa Dokumentom
Imena nekih prozora dokumenata se sastoje od osnove i sufiksa koji predstavljaju tip dokumenta. Ako želimo ispisati referenta na izdanju, zapisujemo termin
[GetFormValue('PrometIzdDob3000.fReferentZap')]
Vraća vrijednost samo u slučaju tipa dokumenta 3000. Da bismo vratili vrijednost za sve tipove dokumenata, moramo prepisati ovaj kod na
[GetFormValue('PrometIzdDob'+<tbLookPoslDog."acDocType">+'.fReferentZap')]
Gdje dataset "tbLookPoslDog" nije dostupan, možemo dobiti ime prozora iz broja dokumenta. Na izvještaju o prodajnim 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 sa 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 vam potrebni u datasetu, postoje obavijesti o neizmirenim obavezama koje su u programu u 'Finansije | Izvještaji | Neizmirene stavke'.
Sljedeći izraz vraća datum stanja u yyyy/mm/dd formatu:
[GetFormValue('GLOutstandingItems.edtDate')]
Termin također ima nedostatak da ako datum nije unesen, vraća "1900/01/01" (što nije moguće u ovom slučaju).
Moramo provjeriti da li je datum unesen prije ispisa sa 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 se dobija prebacivanjem dana u mjesecu i mjeseca u broj, a zatim nazad 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 sa ne-tekstualnim objektom
The GetFormValue funkcija se također može koristiti za objekte koji ne predstavljaju tekst. U ovom slučaju, najvažnija karakteristika ovog objekta se vraća. Vraćena vrijednost obično nije pogodna za direktan 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 dugmadi pod nazivom 'grpGroupBy' na izvještaju o kartici računa za primjer '32D- Kartica računa' koja je u programskom meniju 'Finansije | Izvještaji | Kartica računa'. Ime prozora je 'GLAccountCard'. Za ovaj tip objekta funkcija vraća 'ItemIndex' svojstvo koje određuje koje dugme je odabrano. U našem primjeru, ovo svojstvo određuje kako se podaci agregiraju i trake na izvještaju su skrivene. Vrijednost koju vraća funkcija se zapisuje u 'nGroupBy' varijablu i zatim, u zavisnosti od njene 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');