Referenca në Fushat e Bazës së të Dhënave
Ngjarjet
Derisa deri tani kemi shqyrtuar skriptet me vetëm një procedurë kryesore, e cila ekzekutohet kur një raport fillon të ekzekutohet. Në procedurën kryesore mund të bëhen cilësime fillestare dhe të inicializohen variablat. Megjithatë, kjo nuk është e mjaftueshme për kontrollin total mbi procesin e gjenerimit të raportit. Për të mundësuar sa më shumë kontroll mbi gjenerimin e raportit, çdo objekt ka disa ngjarje të cilave mund t'u caktohen menaxherë (dmth. procedura në skript). Për shembull, lidhja e një menaxheri me bandën e të dhënave mundëson filtrimin e regjistrimeve, në mënyrë që banda të mund të fshihet ose zbulohet sipas kushteve specifike që plotësohen.
Le të demonstrojmë procesin e krijimit të raportit dhe ngjarjet e aktivizuara përmes një raporti të thjeshtë që përmban një faqe dhe ka një bandë “MasterData”, me dy objekte “Text” në bandë:

Sipas përshkrimit të mësipërm, procedura kryesore e skriptit thirret në fillim të ekzekutimit të raportit. Pas kësaj fillojnë elementet thelbësore të ndërtimit të raportit. Së pari, ngjarja “OnStartReport” e objektit "Raport" thirret. Pastaj, para se të krijohet një faqe dalëse, ngjarja “OnBeforePrint” e faqes thirret. Kjo ngjarje thirret një herë për çdo faqe dizajni në shabllonin e raportit (faqet e dizajnit nuk duhet të ngatërrohen me faqet dalëse të një raporti!). Në shembullin tonë, ngjarja thirret një herë, pasi dizajni i raportit përbëhet vetëm nga një faqe dizajni.
Pastaj ngjarjet e bandave të të dhënave thirren në rendin e mëposhtëm:
1. ngjarja “OnBeforePrint” e bandës thirret
2. ngjarja “OnBeforePrint” e çdo objekti të përfshirë në bandë thirret
3. çdo objekt mbushet me të dhëna (në shembullin tonë me vlerat e fushave të DB “Company” dhe “Addr1”)
4. ngjarja “OnAfterData” e çdo objekti thirret
5. veprime si pozicionimi i objekteve në bandë (nëse ka objekte të shtrirshme midis tyre), llogaritja e lartësisë së bandës dhe shtrirja e saj (nëse është e shtrirshme) kryhen
6. ngjarja “OnAfterCalcHeight” e bandës thirret
7. krijohet një faqe e re dalëse nëse banda nuk ka mjaft hapësirë në hapësirën e bardhë të faqes
8. banda dhe të gjithë objektet e saj shfaqen në faqen dalëse
9. ngjarja “OnAfterPrint” e çdo objekti të bandës thirret
10. ngjarja “OnAfterPrint” e bandës vetë thirret
Bandat vazhdojnë të printohen sa kohë që burimi i lidhur me bandën ka të dhëna. Pas kësaj, printimi i raportit ndalon, ngjarja “OnAfterPrint” e faqes së raportit thirret dhe përfundimisht ngjarja “OnStopReport” e objektit “Raport”.
Pra, duke përdorur ngjarjet e objekteve të ndryshme, praktikisht çdo hap të procesit të krijimit të raportit mund të menaxhohet. Çelësi për përdorimin e ngjarjeve është një kuptim i thellë i procesit të daljes së bandës, i cili diskutohet në seksionet e ardhshme. Shumica e veprimeve mund të kryhen duke përdorur vetëm ngjarjen “OnBeforePrint” të bandës; çdo modifikim i bërë në një objekt shfaqet menjëherë. Megjithatë, nëse banda është e shtrirshme, është e pamundur të thuhet në këtë ngjarje në cilën faqe do të printohet banda, pasi llogaritja e lartësisë së bandës kryhet në hapin 5. Megjithatë, kjo mund të bëhet ose në ngjarjen “OnAfterCalcHeight” në hapin 6 ose në ngjarjen “OnAfterPrint” në hapin 9. Vini re se në ngjarjen e fundit banda do të ketë qenë tashmë e dalë, kështu që modifikimi i objekteve nuk do të ketë asnjë efekt të dukshëm.
Është thelbësore të kuptohet qartë “ku dhe kur” bandat dalin dhe të kuptohet renditja e thirrjeve (renditja e thirrjeve) të çdo ngjarjeje të tyre. Po ashtu për çdo objekt të përfshirë në bandat.