共用方式為


教學課程:使用工作階段保存 ReportDocument 物件模型

在本教學課程中,您會使用 ReportDocument 物件模型,並且在執行階段對報表進行程式設計變更。您也將學習如何使用工作階段來保存網頁重新載入之間的變更。

由於只有 Web 應用程式需要工作階段保存,因此本教學課程不適用於 Windows 專案。

Note附註

如需有關保存的總覽,請參閱 SDK 基礎觀念下的「我應該使用哪一種保存性方式來搭配 Crystal Reports?」

簡介

您在本教學課程中所建立的專案會使用一份 Web Form,其中包含一個 CrystalReportViewer 控制項,以及兩個可在 ReportDocument 物件模型中變更報表排序順序的按鈕。

首先,您會建構不具工作階段保存的專案。在沒有保存的狀況下,您可以看到排序順序的變更在按一下按鈕後即恢復原狀。

接著,您就可以將工作階段保存加入專案中。每當 ReportDocument 執行個體建立之時,或其狀態有所變更,便會將 ReportDocument 執行個體置入工作階段。

若報表需要重新顯示,即從工作階段取出 ReportDocument 執行個體,並將其繫結至 CrystalReportViewer 控制項。這可以確保每次顯示報表時,使用者都能看到最新版的 ReportDocument 執行個體。

Note附註

本教學課程將使用工作階段,因為報表修改的部分要保存至 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

若要找出包含這些範例的資料夾,請參閱「教學課程的範例程式碼目錄」

在本節中:

請參閱