部署报表和 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. Android内存泄漏分析

    周末去上海参加了安卓巴士组织的技术论坛,去了才发现自己基础很渣..... 其中提到了android的内存泄漏的问题,回来马上度娘(虽说度娘很渣),整理如下: 一.单例造成的内存泄漏 因为单例的静态特性 ...

  2. I/O系统,多线程、图形用户界面编程

    多线程 进程与线程区别: 进程需要分配独立的内存空间:线程在同一内存空间中工作,可以共享同一块内存和系统资源 与Java相关的API: 1)Thread类 方法:start()启动: urn() : ...

  3. kbengine mmo源码(完整服务端源码+资源+完整客户端源码)

      本项目作为kbengine服务端引擎的客户端演示而写 更新kbengine插件库(https://github.com/kbengine/kbengine_unity3d_plugins):    ...

  4. ubuntu12.04 下安装matlab2012

    1.下载matlab2012a(例如:****.iso) 2.创建挂载目录 sudo mkdir /media/matlab 3.将当前目录切换到镜像文件的目录,然后将镜像文件挂载到刚刚创建的目录下 ...

  5. 为什么for in循环不适合用于数组

    首先一点无关的,使用(var i in a) 而不是( i in a),除非你想创建全局变量. 第二点,for in 循环会忽略空的数组 var a = []; a[5] = 5; // Perfec ...

  6. 01-实现图片按钮的缩放、动画效果(block的初步应用)

    #import "ViewController.h" #define kDelta 60 @interface ViewController () @end @implementa ...

  7. Windows2008下搭建NFS实现windows空间提供linux使用

    我们既然是要把Windows 的硬盘给Linux使用  就需要在Windows上安装NFS网络文件系统 操作如下 1.添加角色-----文件服务---勾选网络文件服务 2.安装完成后 我们需要把这30 ...

  8. tomcat学习笔记2

    LNMT在网站架构中的实现过程: Client --> http --> Nginx --> reverse_proxy (http) --> tomcat (http con ...

  9. MySQL的相关概念介绍

    MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个 ...

  10. 【Window】Tor(洋葱头路由)+Privoxy 网络实践(附带Java实例代码)

    1.背景 平时我们需要访问onion后缀的网站,需要通过Tor(The Onion Router,洋葱路由器).一般来说安装Tor Broswer就可以满足需要.但是项目我要做的是通过程序来获取oni ...