Crystal Reports 中的可序列化物件模型

Crystal Reports 有四個可用的物件模型:兩個會隨附 Crystal Reports 發行,而另兩個需經由升級取得。

本節將說明哪一個物件模型可以進行序列化,以便與跨處理序工作階段狀態伺服器搭配使用。

Note附註

如需跨處理序工作階段狀態的簡介,請參閱「跨處理序工作階段狀態」

序列化與 CrystalReportViewer 物件模型

CrystalReportViewer 物件模型是包含在 CrystalReportViewer 控制項 API 內的有限物件模型。由於這個物件模型的範圍有限,通常不建議使用,最好改用功能更強大的 ReportDocument物件模型。

Note附註

請參閱「我應該使用哪一個物件模型?」

然而,CrystalReportViewer 物件模型可以在 Web Farm 或 Web Garden 上使用。這是因為 CrystalReportViewer 包含在 Web 控制項內,而 Web 控制項的保存性是由用戶端以「檢視狀態」進行管理。「檢視狀態」保存性會將 ASP.NET Web 伺服器控制項的狀態放在加密字串中,然後於頁面重新載入期間將該加密字串當成隱藏的表單欄位包含在 ASPX 頁面內。狀態資訊便可以傳送至任何 ASP .NET 背景工作處理序。

Note附註

這種形式的用戶端保存性只能在頁面重新載入期間產生作用。「檢視狀態」無法跨頁面保存資訊。如需「檢視狀態」的詳細資訊,請參閱「CrystalReportViewer 物件模型的 ViewState 和保存性」

序列化與 ReportDocument 物件模型

ReportDocument 物件模型是比 CrystalReportViewer 更為強大的物件模型,因此通常建議在 Crystal Reports 中使用此物件模型。

Note附註

如需有關 ReportDocument 物件模型的詳細資訊,請參閱「ReportDocument 物件模型」

不過,在 Crystal Reports 9 版和更早版本中,無法序列化 ReportDocument 類別;因此,在 Web Farm 或 Web Garden 案例中,此類別無法單獨和跨處理序工作階段狀態伺服器搭配使用。

Crystal Reports 10 及更新版本已排除上述限制,將 ReportDocument 物件模型銜接到可序列化的 ReportClientDocument 物件模型。

ReportClientDocument 物件模型可用數種不同的方式存取。如需詳細資訊,請參閱「報表應用程式伺服器 (RAS)」

若要在 Web Farm 或 Web Garden 中使用 ReportDocument 物件模型,您需要使用 ASP.NET 的跨處理序「工作階段狀態」伺服器來儲存序列化 ReportDocument 執行個體的狀態,以及使用 Unmanaged RAS 伺服器來儲存 Crystal 報表的 .rpt 檔案。

Note附註

只有已安裝 RAS 伺服器,並且要設定 ReportDocument.ReportAppServer 和 ReportDocument.EnterpriseSession 屬性來處理該伺服器,才能將 ReportDocument 物件模型序列化。

序列化與 ReportClientDocument 物件模型

ReportClientDocument 物件模型可以予以序列化。ReportClientDocument 物件模型可用數種不同的方式存取。如需詳細資訊,請參閱「報表應用程式伺服器 (RAS)」

Note附註

如需有關 ReportClientDocument 物件模型的詳細資訊,請參閱「ReportClientDocument 物件模型 (RAS)」

InfoObject 物件模型

InfoObject 物件模型是 Crystal 升級解決方案、Crystal Reports Server 或 BusinessObjects Enterprise 的一部份。Crystal Reports Server 與 BusinessObjects Enterprise 是多重伺服器的企業解決方案,通常做為現有 Web Farm 或 Web Garden 的另一種處理方法。如需詳細資訊,請參閱「升級選項」

請繼續進行「針對 Web Farm 或 Web Garden 設定 Crystal Reports」

請參閱