在服务器上部署VS 2008 ReportViewer,完美支持中文

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://www.cnblogs.com/jintan/archive/2008/06/12/1218079.html

Reporting Services的确是个不错的东西,特别是VS2008下更显得完美了,而且ASP.net下的ReportViewer也支持打印的功能了,上个版本是不直接支持的。
关于如何使用RS的文章,aspnetx老大翻译的这篇文章不错。只是在部署上遇到了一些麻烦,特别是对中文支持上,下面谈谈几种解决方案。

VS 2005下的部署实际已经很简单了。
1.安装ReportViewer.exe,或者直接下载Microsoft Report Viewer Redistributable 2005 SP1 (完全安装) 安装。
2.再去MS网站下载语言包(ReportViewerLP.exe),在服务器上安装就可以了。


VS2008下ReportViewer的部署:
1.下载Microsoft Report Viewer Redistributable 2008(2.8 MB)在服务器上安装。
2.由于MS官方网站没有提供VS2008 ReportViewer的语言包下载,所以就只能靠自己了。
    需要两个dll:
                Microsoft.ReportViewer.WebForms.resources.dll
                Microsoft.ReportViewer.Common.resources.dll
        如果是Winform使用ReportViewer,则需要Microsoft.ReportViewer.WinForms.resources.dll
        这几个dll实际上是资源文件编译成的dll,然后复制到运行ReportViewer 的网站下的的bin目录,就可以了,
    或者可以加到GAC中,这样就不需要每个网站的bin下都复制这几个dll.

    关于获取这几个dll?如果安装了Vs 2008的机器上都会有的,最直接的办法就是在C:/WINDOWS/assembly下可以看到
  
    
直接用命令: xcopy C:/WINDOWS/assembly/GAC_msil c:/GAC_MSIL /E /c
可以复制所有GAC_msil 下的所有dll

另一种解决方案:英文操作系统下Report Viewer控件客户端工具栏中文的解决办法
 应用这个方案可以自定义toolbar上的信息,但是需要设置当前的Culture为zh_CN
我转贴一下代码:


using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Microsoft.Reporting.WebForms;

namespace WebReport
{
    
public class ReportViewerMessagesZhcn : IReportViewerMessages
    
{
        
#region IReportViewerMessages Members
        
public string BackButtonToolTip
        
{
            
get return ("后退"); }
        }


        
public string ChangeCredentialsText
        
{
            
get {return ("更改"); }
        }


        
public string ChangeCredentialsToolTip
        
{
            
get return ("ChangeCredentialsToolTip."); }
        }


        
public string CurrentPageTextBoxToolTip
        
{
            
get return ("当前页"); }
        }


        
public string DocumentMap
        
{
            
get return ("文档视图"); }
        }


        
public string DocumentMapButtonToolTip
        
{
            
get return ("文档视图."); }
        }


        
public string ExportButtonText
        
{
            
get return ("导出"); }
        }


        
public string ExportButtonToolTip
        
{
            
get return ("导出"); }
        }


        
public string ExportFormatsToolTip
        
{
            
get return ("选择格式."); }
        }


        
public string FalseValueText
        
{
            
get return ("不正确的值."); }
        }


        
public string FindButtonText
        
{
            
get return ("查找"); }
        }


        
public string FindButtonToolTip
        
{
            
get return ("查找"); }
        }


        
public string FindNextButtonText
        
{
            
get return ("下一个"); }
        }


        
public string FindNextButtonToolTip
        
{
            
get return ("查找下一个"); }
        }


        
public string FirstPageButtonToolTip
        
{
            
get return ("第一页"); }
        }


        
public string InvalidPageNumber
        
{
            
get return ("页面数不对"); }
        }


        
public string LastPageButtonToolTip
        
{
            
get return ("最后一页"); }
        }


        
public string NextPageButtonToolTip
        
{
            
get return ("下一页"); }
        }


        
public string NoMoreMatches
        
{
            
get return ("无匹配项"); }
        }


        
public string NullCheckBoxText
        
{
            
get return ("空值"); }
        }


        
public string NullValueText
        
{
            
get return ("空值"); }
        }


        
public string PageOf
        
{
            
get return ("/"); }
        }


        
public string ParameterAreaButtonToolTip
        
{
            
get return ("参数设置"); }
        }


        
public string PasswordPrompt
        
{
            
get return ("PasswordPrompt"); }
        }


        
public string PreviousPageButtonToolTip
        
{
            
get return ("上一页"); }
        }


        
public string PrintButtonToolTip
        
{
            
get return ("打印"); }
        }


        
public string ProgressText
        
{
            
get return ("正在生成报表"); }
        }


        
public string RefreshButtonToolTip
        
{
            
get return ("刷新"); }
        }


        
public string SearchTextBoxToolTip
        
{
            
get return ("查找"); }
        }


        
public string SelectAValue
        
{
            
get return ("SelectAValue"); }
        }


        
public string SelectAll
        
{
            
get return ("全选"); }
        }


        
public string SelectFormat
        
{
            
get return ("选择格式"); }
        }


        
public string TextNotFound
        
{
            
get return ("未找到"); }
        }


        
public string TodayIs
        
{
            
get return ("TodayIs"); }
        }


        
public string TrueValueText
        
{
            
get return ("TrueValueText"); }
        }


        
public string UserNamePrompt
        
{
            
get return ("UserNamePrompt"); }
        }


        
public string ViewReportButtonText
        
{
            
get return ("查看报表"); }
        }


        
public string ZoomControlToolTip
        
{
            
get return ("缩放"); }
        }


        
public string ZoomToPageWidth
        
{
            
get return ("页宽"); }
        }


        
public string ZoomToWholePage
        
{
            
get return ("整页"); }
        }


        
#endregion

    }
 
}

web.config:

< system.web >
    
< globalization  uiCulture ="zh-CN"  culture ="zh-CN" />
< system.web >

 

   < appSettings >
    
< add  key ="ReportViewerMessages"  value ="WebReport.ReportViewerMessagesZhcn,App_Code"   />
  
</ appSettings >


附件dll下载:/Files/jintan/ReportViewerResources.rar

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值