Zgradba izpisa
Në këtë temë do të shohim disa shembuj të përdorimit GetFormValue funksioni.
Marja e Vlerës së Objektit nga Dritarja PANTHEON
Në shembullin e parë do të shkruajmë shprehjen që kthen magazinën në faturat e lëshuara që ndodhet në menunë e programit 'Mallit | Raporti i Faturave të Lëshuara | Raporti i Faturave të Lëshuara/Margjina e Fitimit'. Emri i dritares Pantheon është 'PrometObracunIzdRac', emri i kutisë së kontrollit në të cilën ne zgjedhim magazinën është 'fWarehouse'.
[GetFormValue('PrometObracunIzdRac.fWarehouse')]
Marja e Vlerës nga PANTHEON Dritarja me Dokument
Emrat e disa dritareve të dokumenteve përbëhen nga një bazë dhe një sufiks që përfaqëson llojin e dokumentit. Nëse duam të printojmë referentin në lëshim, shkruajmë termin
[GetFormValue('PrometIzdDob3000.fReferentZap')]
Ajo do të kthejë vlerën vetëm në rastin e llojit të dokumentit 3000. Për të kthyer vlerën për të gjitha llojet e dokumenteve, duhet ta rishkruajmë këtë kod në
[GetFormValue('PrometIzdDob'+<tbLookPoslDog."acDocType">+'.fReferentZap')]
Ku dataset "tbLookPoslDog" nuk është i disponueshëm, ne mund të marrim emrin e dritares nga numri i dokumentit. Në raportin e porosive të shitjes shkruajmë:
[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'))]
Shembulli me Datë
Funksioni GetFormValue kthen datën në yyyy/mm/dd format. Ne duam të shfaqim datën në dd.mm.yyyy ose d.m.yyyy format.
Shembulli më i mirë është kur nuk ka të dhëna që ju nevojiten në dataset, ka njoftime për angazhime të papaguara që janë në program në 'Financat | Raportet | Artikujt e Papaguar'.
Shprehja në vazhdim kthen datën e shtetit në yyyy/mm/dd format:
[GetFormValue('GLOutstandingItems.edtDate')]
Termi gjithashtu ka një disavantazh që nëse data nuk është e futur, ajo kthen "1900/01/01" (çka nuk është e mundur në këtë rast).
Ne duhet të kontrollojmë nëse data është futur para se të printojmë me IIF funksionin:
[IIF(GetFormValue('GLOutstandingItems.edtDate')= '1900/01/01','',
GetFormValue(''GLOutstandingItems.edtDate'))]
Nëse duam të printojmë datën në formatin dd.mm.yyyy, ne duhet të ndryshojmë rendin e numrave në raport:
[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))]
Data në d.m.yyyy format merret duke kthyer ditën e muajit dhe muajin në një numër dhe pastaj përsëri në 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))]
Shembulli me Objekt Jo-Tekst
Funksioni GetFormValue mund të përdoret gjithashtu për objekte që nuk përfaqësojnë një tekst. Në këtë rast, karakteristika më e rëndësishme e këtij funksioni kthehet. Vlera e kthyer zakonisht nuk është e përshtatshme për printim të drejtpërdrejtë, por ne mund ta përdorim atë në raportin vetë. Për shembull, teksti shfaqet në dritare në këtë vlerë.
Si një shembull, ne shohim një grup butonash radio të quajtur 'grpGroupBy' në raportin e kartelës së llogarisë për shembull '32D- Kartela e Llogarisë' që ndodhet në menunë e programit 'Financat | Raportet | Kartela e Llogarisë'. Emri i dritares është 'GLAccountCard'. Për këtë lloj objekti funksioni kthen pronën 'ItemIndex' që përcakton se cili buton është i zgjedhur. Në shembullin tonë, kjo pronë përcakton se si të dhënat do të grumbullohen dhe grupet në raport janë të fshehura. Vlera e kthyer nga funksioni shkruhet në variablën 'nGroupBy' dhe pastaj, në varësi të vlerës së saj, ne fshehim grupet në raport, në procedurën "SubjektFooterOnBeforePrint".
var nGroupBy: Integer;
...
procedura SubjektFooterOnBeforePrint(Sender: TfrxComponent);
fillo
nëse nGroupBy <= 1 atëherë
SubjektFooter.Visible := False;
mbaro;
...
nGroupBy := GetFormValue('GLAccountCard.grpGroupBy');