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