Visual Studio 2010 中的 Reporting Services 和 ReportViewer 控制項

ReportViewer 控制項是 Visual Studio 2010 中的 ASP.NET 和 Windows Form 控制項,您可以將它分別加入至 ASP.NET Web 應用程式/網站已啟用 AJAX 的網頁中以及 Windows Form 應用程式的表單中。此控制項會直接將報表處理和檢視功能內嵌在您的應用程式中。它還提供整合式設計環境,讓您能夠利用任何 ADO.NET 資料物件的資料來建立用戶端報表定義 (.rdlc)。具備完整功能的 API 提供以程式設計方式存取控制項和報表,讓您能夠在執行階段設定報表功能。而且,Visual Studio 2010 中的 ASP.NET AJAX 控制項導入一組建立於 Microsoft AJAX 程式庫基礎上的 JavaScript API,允許主應用程式透過用戶端程式設計與 ReportViewer 控制項進行互動。

若要深入了解有關 ReportViewer 控制項的詳細資訊,請搜尋 Visual Studio 產品文件集內的「ReportViewer 控制項」。

功能摘要

下表顯示如何針對報表處理、資料擷取、部署及報表設計等方面,來比較 ReportViewer 控制項和 Reporting Services。您可以利用此資訊來判斷哪項 Microsoft 報表技術是您應用程式的最佳選擇。

[!附註]

在遠端處理模式下,Visual Studio 2010 中的 ReportViewer 控制項支援 SQL Server 2008 Reporting Services 或 SQL Server 2008 R2 Reporting Services。

功能

ReportViewer 控制項

SQL Server Reporting Services

報表處理

本機處理模式:

在用戶端應用程式中處理報表。

遠端處理模式:

轉譯 SQL Server Reporting Services 報表伺服器處理的伺服器報表。

在報表伺服器上處理報表。

報表輸出格式

本機處理模式:

GDI 適用於在 Windows 應用程式中執行的報表。HTML 適用於在 ASP.NET 網頁中執行的報表。

匯出格式包含 Excel、PDF 和 Word。

遠端處理模式:

可用的轉譯格式取決於 SQL Server Reporting Services 報表伺服器上設定的轉譯延伸模組。

HTML、MHTML、TIFF、PDF、Excel、Word、CSV 及 XML。

您也可以撰寫自訂輸出格式。

報表功能

本機處理模式:

多維度、關聯式及視覺化資料的互動式和靜態報表。

您可以定義在報表中執行的自訂組件。

您可以利用運算式來提供條件式格式化和彙總。

遠端處理模式:

可用的功能是由 SQL Server Reporting Services 報表伺服器所決定。

報表功能包括在本機處理模式下 ReportViewer 控制項中執行的報表所提供的所有功能,並加上對您可在報表中建立及執行的自訂報表項目的支援。

SQL Server 2008 R2 Reporting Services 支援其他功能,例如地圖、走勢圖、彙總的彙總,以及處理和轉譯增強功能。

資料來源類型和資料擷取

本機處理模式:

直接繫結到 ADO.NET 資料的資料表,並耗用提供給控制項的 DataTable 執行個體。您也可以直接繫結到商務物件。

遠端處理模式:

可用的資料來源類型取決於 SQL Server Reporting Services 報表伺服器上設定的資料處理延伸模組。

在報表伺服器和遠端資料伺服器中進行整合式資料和報表處理。

報表伺服器中的資料處理延伸模組會判斷支援的資料來源類型。預設的資料來源包含 SQL Server、Analysis Services、SQL Server Integration Services、Oracle、XML 和 OLEDB。SQL Server 2008 R2 Reporting Services 也會支援下列資料來源:SQL Server SharePoint 清單、SQL Azure 和 SQL Server 平行資料倉儲。

您可以建立自訂資料處理延伸模組來支援其他資料來源類型。

報表參數化

本機處理模式:

報表參數的內建支援會根據靜態值來提供結果集的條件式篩選。

在本機處理模式下,ReportViewer 控制項並不提供讓您用於資料處理期間傳遞值的參數輸入區。資料與報表處理之間沒有整合。如果您要在執行階段接受查詢參數或報表參數的使用者輸入,您必須在您的應用程式中撰寫程式碼來支援它。

遠端處理模式:

與 SQL Server Reporting Services 相同。

報表參數可對應至查詢參數,提供一種可在執行階段將報表參數值傳入查詢的方式。依預設,參數提示區域是在報表中提供。您可以在設計階段定義參數屬性,並在執行階段管理這些屬性。

報表設計和 Visual Studio 整合

本機處理模式:

在 Visual Studio 中建立用戶端報表定義 (.rdlc) 檔。將報表範本加入專案中,可以建立報表定義檔、將檔案加入專案中,並在 Visual Studio 工作空間中開啟整合式報表設計師。此外,在專案中加入報表精靈範本,有助於引導您完成建立報表的步驟。

Visual Studio 資料來源精靈可讓您在應用程式中提供資料,以利報表中的後續使用。

Visual Studio 報表設計師不包括 [預覽] 索引標籤。若要預覽報表,請執行應用程式,然後預覽內嵌在應用程式中的報表。

Visual Studio 報表設計師會與 [資料來源] 視窗整合。當使用者將欄位從 [資料來源] 視窗拖曳至報表時,報表設計師會將資料集的相關中繼資料複製到報表定義檔中。ReportViewer 控制項會利用此中繼資料自動產生資料繫結程式碼。

遠端處理模式:

與 SQL Server Reporting Services 相同。

在 Visual Studio 中,透過 Business Intelligence Development Studio 建立報表定義。Business Intelligence Development Studio 會加入 SQL Server 元件專屬的專案範本。若要建立報表,請從報表伺服器專案或報表伺服器專案精靈範本中選擇。

[資料] 索引標籤、[配置] 索引標籤及 [預覽] 索引標籤可讓您定義資料、建立報表配置,並在相同的工作空間中預覽報表。

部署和散發

您的應用程式可以包含可轉散發控制項和 .rdlc 檔。在本機和遠端處理模式下,您也可以傳入報表定義做為資料流。

在您建立及部署的應用程式中,ReportViewer 主控 Windows Form 或網頁中的報表。

ReportViewer 工具列提供頁面導覽、列印、搜尋及匯出格式,以支援執行階段作業。

部署 SQL Server Reporting Services 報表伺服器。您可以將報表定義儲存在報表伺服器資料庫中、在伺服器中處理這些定義,並在以瀏覽器為基礎的應用程式或自訂應用程式中檢視它們。

報表工具列提供頁面導覽、列印、搜尋及匯出格式。

檢視工具和 SharePoint Web 組件可讓您檢視報表。

散發功能包含以訂閱為基礎的報表傳遞,目的地為電子郵件位址和檔案共用位置。

網際網路存取

如果您要讓供網際網路存取的 Web 應用程式能夠使用報表,建議您使用在網頁中主控的 [ReportViewer] 控制項。

您可以利用您的應用程式支援的安全性基礎結構,將控制項和報表納入現有的 Web 應用程式中。

您可以設定 Reporting Services 報表伺服器以供網際網路存取。您可能需要根據應用程式和使用者的需求,來建立自訂驗證延伸模組、修改組態檔,並設定安全通訊端層 (SSL) 的伺服器。如需詳細資訊,請參閱<規劃外部網路或網際網路部署>。

企業功能

ReportViewer 控制項可以主控報表伺服器向外延展部署中的報表 (對控制項而言,報表伺服器部署是透明的)。

您可以在執行於任何高可用性部署模型中的自訂應用程式中使用控制項。

Reporting Services 支援這些企業功能:

  • 向外延展部署。

  • 已排程和視需要報表處理。

  • 可在需要時針對單次使用來建立,或儲存至伺服器的特定報表。

  • 可將自訂報表輸出路由至收件者動態清單的資料導向訂閱。

  • 管理和組態工具。

自訂

可透過 API 支援自訂。

您也可以在報表和 [ReportViewer] 工具列上設定屬性,來決定是否可見及功能可用性。

您可以建立延伸模組來新增資料處理、報表傳遞、自訂驗證及報表轉譯的支援。

您可以在報表、報表工具列及報表伺服器中設定屬性。

可透過延伸 API 來支援其他自訂。

範例和逐步解說

搜尋 Visual Studio 產品文件集中或 MSDN 上 (位於 Visual Studio 中) 的「Visual Studio 中的範例和逐步解說」。

如需有關 Reporting Services 中範例和逐步解說的詳細資訊,請參閱<我如何找到教學課程>。

文件集

搜尋 Visual Studio 產品文件集中或 MSDN 上的「ReportViewer 控制項 (Visual Studio)」。

在《SQL Server 線上叢書》中有 Reporting Services 的說明。