上篇隨筆介紹了在ActIEvReport中導出報表,本篇隨筆簡單介紹ActiveReport中的重要事件。
1. 只觸發一次的事件:
ReportStart:在報表啟動時觸發。該事件在DataInitialize之前,在這裡可以整個報表都要用到的對象或變量作初始化,也可以設置子報表。
DataInitialize:這個事件在前面的幾篇隨筆中經常出現,經常在這裡取數據,綁定數據源,設置報表的Fileds屬性等。
ReportEnd :在報表加載完成後觸發。
2. 多次觸發的事件:
FetchData: 在處理每一條數據時都會觸發,如果是采用綁定數據源的方式,就不需要再作對Fields中每個Field的Value賦值。如果是從自定義的對象集合中提取數據,就要在這裡給FIElds賦值。而且,使用自定義集合的時候要自己設置事件的eArgs參數的EOF屬性,該屬性用來判斷是否顯示到了最後一條記錄,如果是,就設置為true,並且直接返回。具體的代碼可以參看以前的隨筆。
PageStart
$False$
SIZE: 10pt">:在報表的每頁生成的時候觸發,在這裡作針對每個頁的處理,最常見的就是顯示頁碼。
PageEnd:在報表的每也生成完成的時候觸發。
3. 區域的事件:
每個區域(PageHeader,Detail ,PageFooter)都有Format,BeforePrint和AfterPrint事件。最好不要在這幾個事件中操作報表的FIElds集合,而應該在DataInitialize和FetchData中進行。
Format :在數據加載並綁定後觸發,只有在這裡才可以設置某個區域的高度。
BeforePrint:在區域被生成前觸發,在這裡如果設置區域的高度是不會有效果的,而且不要在這裡操作數據源。AfterPrint:在區域已經被生成並描畫出後發生,可以在該事件裡直接在畫布上進行描畫操作。