您可以將報表和 ReportViewer 控件作為應用程序的一部分自由發布。根據控件類型以及報表是配置為本地處理還是遠程處理,部署要求會有很大不同。在同一個應用程序中,既可以部署本地處理的報表,也可以部署遠程處理的報表。
重新發布 ReportViewer 控件
可重新發布的 ReportViewer 控件是一個名為 ReportViewer.exe 的自解壓縮文件,其中包括一個 .msi 文件以及其他文件。 可以在以下位置找到 ReportViewer.exe:C:/PRogram Files/Microsoft Visual Studio 8/SDK/v2.0/BootStrapper/Packages/ReportViewer/ReportViewer.exe。
運行 ReportViewer.exe 時,會將下列文件復制到部署計算機上的 Global Assembly Cache 文件夾中。
文件 | 說明 |
---|---|
Microsoft.ReportViewer.Common | 提供 ReportViewer Windows 窗體控件和 Web 服務器控件通用的核心報告功能。 |
Microsoft.ReportViewer.ProcessingObjectModel | 公開報表對象模型,以便可以通過編程方式在運行時從報表定義中的表達式對其進行訪問。 |
Microsoft.ReportViewer.WebForms | 提供適用于 asp.net 頁的 ReportViewer 控件。 |
Microsoft.ReportViewer.WinForms | 提供適用于 Windows 應用程序的 ReportViewer 控件。 |
運行 ReportViewer.exe
您所使用控件的類型決定運行 ReportViewer.exe 的位置。
對于 ASP.NET 應用程序,應在承載應用程序的 Web 服務器上運行 ReportViewer.exe。
對于 Windows 窗體應用程序,應將控件添加為應用程序的必備項,以使它們自動隨應用程序一起安裝。您可以使用引導應用程序自動完成此步驟:
打開項目屬性頁。
單擊“發布”,再單擊“必備組件”。
選擇“Microsoft Visual Studio 2008 報表查看器”,然后單擊“確定”。
發布應用程序。
在安裝應用程序時,會在本地計算機上進行檢查,以確定是否已安裝 ReportViewer。如果尚未安裝,安裝程序將安裝它。
部署 ReportViewer 控件的本地化版本
ReportViewer 控件包括八種語言的語言包:簡體中文、繁體中文、法語、德語、意大利語、日語、朝鮮語和西班牙語。若要使用該控件的本地化版本,必須執行下列操作:
運行 ReportViewer.exe。
定位到包含要使用的語言包的文件夾。語言包文件夾位于 <驅動器>:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/BootStrapper/Packages/ReportViewer/<語言> 下。
運行 ReportViewerLP.exe。
若要在 ReportViewer 控件中使用其他語言,可以實現 Microsoft.Reporting.WebForms.IReportViewerMessages 或 Microsoft.Reporting.WinForms.IReportViewerMessages 接口,以便用特定的語言創建工具提示及其他用戶界面文本。
確定瀏覽器語言和區域性設置
當使用 ReportViewer Web 服務器控件在瀏覽器應用程序中承載報表時,如果要提供與瀏覽器語言和區域性設置匹配的用戶界面,應務必對線程區域性進行設置。 ASP.NET 并不會基于客戶端提供的標頭信息來設置線程區域性。若要讓應用程序與瀏覽器的區域性設置匹配,可以在應用程序代碼中設置 System.Threading.Thread.CurrentCulture 和 System.Threading.Thread.CurrentUICulture。有關如何處理應用程序的區域性設置的更多信息,請參見 System.Globalization.CultureInfo。
部署報表查看器 Web 服務器控件的注意事項
在 Web 場中部署 ASP.NET 應用程序需要進行其他配置,以確保在整個場中維護視圖狀態。如果是在 Web 場環境中部署 ReportViewer Web 服務器控件,則應在應用程序的 Web.config 文件中指定 machineKey 元素。有關更多信息,請參見 ReportViewer 的 Web.config 設置。
在 ReportViewer Web 服務器控件中處理的報表對瀏覽器的要求不盡相同。瀏覽器兼容性問題會影響某些種類的報表功能的可用性。有關更多信息,請參見ReportViewer Web 服務器控件的瀏覽器支持。
分發報表
除非在運行時動態生成客戶端報表定義 (.rdlc) 文件,否則本地處理的報表將以 .rdlc 文件存儲在文件系統上,并且必須與應用程序一起提供。這些文件可以安裝在磁盤驅動器上,或者編譯到應用程序可執行文件中。
在遠程服務器上處理的報表將存儲在 Microsoft SQL Server 2005 Reporting Services 報表服務器上。應用程序中不包含任何報表文件,因為報表是遠程處理的,并且本地系統中不存在報表。若要部署在報表服務器上發布的報表,必須提供對報表服務器進行訪問的權限,并確保應用程序用戶有權查看該服務器上的報表。部署服務器報表需要了解報表服務器所使用的身份驗證擴展插件,以及提供內容訪問權限和操作權限的、基于角色的身份驗證模式。有關詳細信息,請參見服務器報表的部署注意事項。