報告事件
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報表分析解決方案,使用FastReport .NET可以創建獨立于應用程序的.NET報表,同時FastReport .Net支持中文、英語等14種語言,可以讓你的產品保證真正的國際性。
為了最大限度地靈活控制報表,每個報表對象都有多個事件。例如,在與 "Data"帶連接的處理程序中,可以過濾記錄,即根據特定條件隱藏或顯示帶。
讓我們考慮一下在報表生成過程中觸發的事件。以一個簡單的報表為例,該報表包含一個頁面、一個 "Data "條帶和條帶上的兩個 "Text "對象:

在報告開始時,"Report "對象會觸發 StartReport 事件。在報告頁面形成之前,StartPage 事件會被觸發。每個模板頁面(不要與準備好的報告頁面混淆!)都會觸發一次該事件。在我們的例子中,無論準備好的報告有多少頁,事件都會被觸發一次,因為模板報告只有一頁。
然后,開始打印 "Data" 帶行。具體過程如下:
- 觸發 BeforePrint 帶事件;
- 打印帶中所有對象的 BeforePrint 事件被觸發;
- 所有對象都填入數據;
- 所有位于帶狀布局上的對象的 AfterData 事件被觸發;
- 觸發 BeforeLayout 頻帶事件;
- 將對象放置在帶狀區域上,計算帶狀區域的高度并拉伸帶狀區域(如果可以的話);
- 觸發 AfterLayout band 事件;
- 如果帶狀物件無法放置在頁面的空閑位置,則會形成一個新頁面;
- 在準備好的報告頁面上顯示條帶及其所有對象;
- 觸發 AfterPrint 頻帶事件;
- 觸發所有條帶對象的 AfterPrint 事件。
- 只要數據源中有數據,就會打印數據帶行。之后,在我們的例子中,報告的形成就結束了。一個頁面的 FinishPage 事件被觸發,最后--"報表 "對象的 FinishReport 事件被觸發。
因此,通過使用不同對象的事件,可以控制報告形成的每一步。正確使用事件的關鍵在于充分理解上述 11 個步驟中闡述的波段打印過程。
因此,只需使用 "BeforePrint "帶,就可以完成很多操作--對對象所做的任何更改都會顯示出來。但在這種情況下,無法分析如果條帶拉伸,將在哪一頁打印,因為條帶的高度將在第 6 步計算。
這可以借助第 7 步的 AfterLayout 事件或第 10 步的 AfterPrint 來完成,但在后一種情況下,條帶已經打印,對對象的操作不會產生任何結果。
總之,您必須明確說明每個事件在哪個時刻觸發,并使用與給定任務相對應的事件。