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



















