教學課程:使用工作階段保存 ReportDocument 物件模型
在本教學課程中,您會使用 ReportDocument 物件模型,並且在執行階段對報表進行程式設計變更。您也將學習如何使用工作階段來保存網頁重新載入之間的變更。
由於只有 Web 應用程式需要工作階段保存,因此本教學課程不適用於 Windows 專案。
附註 |
---|
如需有關保存的總覽,請參閱 SDK 基礎觀念下的「我應該使用哪一種保存性方式來搭配 Crystal Reports?」 |
簡介
您在本教學課程中所建立的專案會使用一份 Web Form,其中包含一個 CrystalReportViewer 控制項,以及兩個可在 ReportDocument 物件模型中變更報表排序順序的按鈕。
首先,您會建構不具工作階段保存的專案。在沒有保存的狀況下,您可以看到排序順序的變更在按一下按鈕後即恢復原狀。
接著,您就可以將工作階段保存加入專案中。每當 ReportDocument 執行個體建立之時,或其狀態有所變更,便會將 ReportDocument 執行個體置入工作階段。
若報表需要重新顯示,即從工作階段取出 ReportDocument 執行個體,並將其繫結至 CrystalReportViewer 控制項。這可以確保每次顯示報表時,使用者都能看到最新版的 ReportDocument 執行個體。
附註 |
---|
本教學課程將使用工作階段,因為報表修改的部分要保存至 ReportDocument 物件模型。若您打算只取用 CrystalReportViewer 控制項所提供有限的物件模型,則請全面使用 ViewState。 |
使用工作階段來保存 ReportDocument 物件時,是否有任何其他相關的保存模型?
使用工作階段來保存 ReportDocument 物件時,是否有任何其他相關的保存模型?
是。在 ASP.NET Web 應用程式中,物件通常會使用工作階段來進行保存,而 Web 伺服器控制項則使用 ViewState 來進行保存。因為 Crystal Reports for Visual Studio Web 應用程式使用物件和 Web 伺服器控制項與報表互動,所以保存性是由工作階段與 ViewState 共用:
- 工作階段會保存 ReportDocument 物件模型,此模型會在執行階段與報表進行程式方面的互動。
- ViewState 則保存 CrystalReportViewer 控制項,而此控制項會顯示報表。特別是 ViewState 會保存在 CrystalReportViewer 工具列中設定的顯示屬性。ViewState 也會保存任何從工具列中按鈕所觸發的事件 (如縮放、下一頁)。
ViewState 保存是自動管理的。因此,在本教學課程中您只會編寫工作階段保存的程式碼。
範例程式碼
本教學課程隨附 Visual Basic 和 C# 範例程式碼,以示範專案的完成版本。請遵循這個教學課程的指示以建立新的專案,或是開啟範例程式碼專案,從完成的版本開始進行。
範例程式碼是以資料夾的形式儲存,並以語言和專案類型來加以分類。下面列出每個範例程式碼版本的資料夾名稱:
- C# 網站:CS_Web_RDObjMod_Session
- Visual Basic 網站:VB_Web_RDObjMod_Session
若要找出包含這些範例的資料夾,請參閱「教學課程的範例程式碼目錄」。