部署报表和 ReportViewer 控件

您可以将报表和 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 窗体应用程序,应将控件添加为应用程序的必备项,以使它们自动随应用程序一起安装。您可以使用引导应用程序自动完成此步骤:

    1. 打开项目属性页。

    2. 单击“发布”,再单击“必备组件”

    3. 选择“Microsoft Visual Studio 2008 报表查看器”,然后单击“确定”

    4. 发布应用程序。

在安装应用程序时,会在本地计算机上进行检查,以确定是否已安装 ReportViewer。如果尚未安装,安装程序将安装它。

部署 ReportViewer 控件的本地化版本

ReportViewer 控件包括八种语言的语言包:简体中文、繁体中文、法语、德语、意大利语、日语、朝鲜语和西班牙语。若要使用该控件的本地化版本,必须执行下列操作:

  1. 运行 ReportViewer.exe。

  2. 定位到包含要使用的语言包的文件夹。语言包文件夹位于 <驱动器>:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ReportViewer\<语言> 下。

  3. 运行 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 报表服务器上。应用程序中不包含任何报表文件,因为报表是远程处理的,并且本地系统中不存在报表。若要部署在报表服务器上发布的报表,必须提供对报表服务器进行访问的权限,并确保应用程序用户有权查看该服务器上的报表。部署服务器报表需要了解报表服务器所使用的身份验证扩展插件,以及提供内容访问权限和操作权限的、基于角色的身份验证模式。有关详细信息,请参见服务器报表的部署注意事项。

部署报表和 ReportViewer 控件 rdlc的更多相关文章

  1. C# - VS2019 WinFrm应用程序开发报表 - ReportViewer控件初涉

    前言 简单报表我们可以通过label.textBox和PrintDialog来实现,但是一般在实际生产过程中,用户的报表需求一般都是比较复杂的. 本篇主要记录对于传统中国式复杂报表的处理方法和解决思路 ...

  2. VS2017中使用ReportViewer控件,vs2017找不到Microsoft Rdlc Report Designer for Visual Studio

    VS2017中没有ReportViewer控件,这个控件用来实现在项目中显示和打印关系数据库中的表比较容易,特别是想要打印的时候,这个比用DataGridView和PrintDocument要简单一些 ...

  3. 动态绑定ReportViewer控件之经验总结

    以上两篇文章已经很丰富了,但是照做一遍不行,检查了N遍还是不行,就是找不出问题原因,总是提示“尚未为数据源“DataSet1_DataTable1”提供数据源实例.”这主要是说在为ReportView ...

  4. Microsoft ReportViewer 控件类型版本兼容问题及解决方法

    错误 Parser Error Message: The base class includes the field 'rvEquipment', but its type (Microsoft.Re ...

  5. C#VS2017添加ReportViewer控件

    安装完vs2017之后我们进行添加Report Viewer控件: 1. 点击Tools -> Extensions and Updates... 2. 在新窗口搜索栏中输入rdlc后搜索,结果 ...

  6. 转:ReportViewer控件使用方法

    a. ReportViewer关联Report1.rdlc的简单呈现b. 对带有报表参数的Report1.rdlc的呈现c. 利用程式生成的DataSet 填充报表d. 调用存储过程 生成DataSe ...

  7. 找不到reportviewer控件在哪儿

    請自行加入ReportViewer(9.0)到工具箱之中. 如下圖,

  8. 求助!使用 ReportViewer 控件集成 Reporting Services2008 时,报"...401 unauthorized"错误!

    实现接口 public class ReportServiceCredetials : Microsoft.Reporting.WebForms.IReportServerCredentials { ...

  9. ASP.NETserver控件使用之Reportviewer 报表

    1.       Reportviewer 报表 1.1.       Reportviewer控件 注:本教程附2个事例: l  演练:在本地处理模式下将数据库数据源与 ReportViewer W ...

随机推荐

  1. LSP“浏览器劫持概念

    关于Winsock LSP“浏览器劫持”,中招者一直高居不下,由于其特殊性,直接删除而不恢复LSP的正常状态很可能会导致无法上网所以对其修复需慎重.   先说说什么是Winsock LSP“浏览器劫持 ...

  2. 二模09day2解题报告

    T1.domino骨牌 n张有黑有白的骨牌排一排,连续三张同色排一起就不好看,求共多少方案不好看. 分析一下,f[3]=2,f[4]=6,f[n]:如果n-1==n 那么方案数为f[n-2],如果不同 ...

  3. js种的循环语句

    //js种的循环语句 //while与do while的区别是while是满足条件后才执行 //do while是不管满不满足条件都会执行一次 //for 循环与while,do while相比循环结 ...

  4. 【MySQL】触发器学习

    MySQL手册中对触发器的定义是: 触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象.表必须是永久性表,不能将触发程序与临时表与视图关联起来. 相同触发程序动作时间和事件的给定表 ...

  5. Linux内核中ioremap映射的透彻理解

    几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器.状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址.根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I ...

  6. Groovy轻松入门——搭建Groovy开发环境

    摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/17/104391.html Groovy轻松入门--搭建Groovy开发环境 多日来,我发表了 ...

  7. A planning attack on a commuter train carriage in Taipei

    Last night an explosion on a commuter train carriage in Taipei Songshan railway station wounded at l ...

  8. nginx + php +mysql (适配thinkphp)

    Nginx 单机配置 http://tengine.taobao.org/book/index.html (taobao book) http://ubuntuhandbook.org/index.p ...

  9. JavaScript API 设计原则

    网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>> 好的 API 设计:在自描述的同时,达到抽象的目标. 设计良好的 API ,开发者可以快速上手,没必要经常抱着手册和文档, ...

  10. jQuery中$.ajax()和$.getJson()同步处理详解

    一.前言 为什么需要用到同步,因为有时候我们给一个提交按钮注册提交表单数据的时候,在提交动作之前会进行一系列的异步ajax请求操作,但是页面js代码会按顺序从上往下面执行,如果你在这过程中进行了异步操 ...