部署報表和 ReportViewer 控制項
您可以在應用程式中,自由地散佈報表和 ReportViewer 控制項。部署需求會隨著控制項類型及報表是設成本機或遠端處理而不同,不同的幅度非常大。您可以將在本機處理和在遠端處理的報表部署在相同應用程式中。
轉散發 ReportViewer 控制項
ReportViewer 控制項可轉散發檔是一個名稱為 ReportViewer.exe 的自動解壓縮檔,其中包括 .msi 檔和其他檔案。您可以從 Microsoft 下載中心下載 ReportViewer.exe。
注意
不同的 ReportViewer 控制項可轉散發檔版本可安裝在同一部電腦上。
當您執行 ReportViewer.exe 時,下列檔案會安裝在部署電腦的全域組件快取資料夾中。
Microsoft.ReportViewer.Common.dll
Microsoft.ReportViewer.ProcessingObjectModel.dll
Microsoft.ReportViewer.WebForms.dll
Microsoft.ReportViewer.WinForms.dll
Microsoft.ReportViewer.DataVisualization.dll
執行 ReportViewer.exe
您使用的控制項類型決定了 ReportViewer.exe 應該在哪裡執行。
如果是 ASP.NET 應用程式,請在主控應用程式的 Web 伺服器上執行 ReportViewer.exe。這必須由伺服器管理員執行。
如果是 Windows Form ClickOnce 應用程式,請將此控制項當做應用程式必要元件來併入,讓其可以自動與 ClickOnce 應用程式一起安裝。您可以使用啟動載入器應用程式將這個步驟自動化:
開啟專案屬性頁面。
按一下 [發行] 索引標籤,再按一下 [必要條件] 按鈕。
選取 [Microsoft Visual Studio 2012 報表檢視器],按一下 [SQL Server CLR 型別],再按一下 [確定]。
確定已核取 [從元件廠商的網站下載必要條件] 選項。這是唯一支援的選項。然後按一下 [確定]。
按一下 [選項] 按鈕。
在 [部署] 索引標籤中,指定部署網頁並選取 [每次發行之後自動產生部署網頁] 核取方塊。
按一下 [確定] 並發行應用程式。
當您存取 ClickOnce 應用程式時 (例如,透過網頁),會在您的用戶端電腦上執行檢查,查看是否已安裝 ReportViewer 必要條件。如果尚未安裝,則安裝程式會進行安裝。
部署當地語系化版本的 ReportViewer 控制項
ReportViewer 控制項可轉散發檔當地語系化為十種 Visual Studio 語言:簡體中文、繁體中文、法文、德文、義大利文、日文、韓文、葡萄牙文 (巴西)、俄文和西班牙文。如果您安裝當地語系化版本的 Visual Studio,可以從 Microsoft 下載中心下載任何當地語系化的 ReportViewer 可轉散發套件。
若要在 ReportViewer 控制項中使用其他語言,您可以實作 IreportViewerMessages3 或 IreportViewerMessages3 介面來建立特定語言的工具提示及其他使用者介面文字。
偵測瀏覽器語言和文化特性設定
如果您要使用 ReportViewer Web 伺服器控制項來主控瀏覽器應用程式中的報表,則當您想要提供符合瀏覽器語言和文化特性設定的使用者介面時,請務必設定執行緒文化特性。ASP.NET 不會根據用戶端提供的標頭資訊來設定執行緒文化特性。若要讓應用程式符合瀏覽器的文化特性設定,您可以在應用程式的程式碼中設定 Thread.CurrentCulture 和 Thread.CurrentUICulture。如需有關如何在應用程式中處理文化特性設定的詳細資訊,請參閱System.Globalization.CultureInfo。
報表檢視器 Web 伺服器控制項的部署考量
將 ASP.NET 應用程式部署在 Web 伺服陣列中需要其他組態,以便確保能夠維護整個伺服陣列的檢視狀態。如果您將 ReportViewer Web 伺服器控制項部署在 Web 伺服陣列環境中,您應該在應用程式的 Web.config 檔中指定 machineKey 元素。如需詳細資訊,請參閱ReportViewer 的 Web.config 設定。
在 ReportViewer Web 伺服器控制項中處理的報表具有相異的瀏覽器需求。瀏覽器相容性問題可能會影響到某些報表功能種類的可用性。如需詳細資訊,請參閱 ReportViewer Web 伺服器控制項的瀏覽器支援。
散發報表檔案
除非您在執行階段透過使用 LocalReport.LoadReportDefinition 或 ServerReport.LoadReportDefinition 方法動態產生用戶端報表定義,否則,根據報表檢視器控制項的處理模式,您有一些不同選項可隨著應用程式散發報表檔案。
本機處理的報表可以儲存在網路資料夾,也可以編譯成應用程式可執行檔。在遠端伺服器處理的報表通常會儲存在 SQL Server Reporting Services 報表伺服器中。除非您要使用 ServerReport.LoadReportDefinition 方法,從某個位置 (而不是報表伺服器) 手動載入報表,否則應用程式中沒有包含報表檔案。若要部署發行在報表伺服器的報表,您必須提供進行中的報表伺服器存取權,且必須確保應用程式使用者有權檢視這部伺服器中的報表。部署伺服器報表需要了解報表伺服器所用的驗證延伸模組,以及用於存取內容和作業的角色型授權模型。如需詳細資訊,請參閱伺服器報表的部署考量。