解决报表控件的中英文问题

在经过N多的语言配置调试后,比如web.config,代码设置threading.currentthread,uiculture/culture多未能成功的情况下。

参考网络上的解决方案,最终成了:

== === ====

用到了打印功能,报表服务器为SQL2005的Reporting   Services,其中数据库服务器、web服务器操作系统、.Net2.0   Framework都是英文版。   
因此出现了一个问题,客户端浏览器在查看报表的时候,报表信息是中文,但是报表上面的工具栏确是英文的。    
尝试了装.net2   Framework中文语言包、ReportView中文语言包、程序中采用中文属 性(AssemblyInfo.cs文件中设置[assembly:   NeutralResourcesLanguageAttribute(  "zh-CN  ")])、安装windows最新补丁等方法,都没有办法实现。最后在msdn看到了Microsoft.Reporting.WebForms中一个接 口IReportViewerMessages的介绍:使应用程序可以提供自定义的用户界面消息。因此尝试用实现此接口的方法来实现。    
在App_Code目录下新建ReportViewerMessagesZhcn.cs类,让他实现IReportViewerMessages接口,代码如下:    
using   System;    
using   System.Collections.Generic;    
using   System.Text;    
using   Microsoft.Reporting.WebForms;    
namespace   AdminConsole.App_Code    
{    
        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中设置该类对ReportViewer的控制:    
在   <appSettings>   节中添加   ReportViewerMessages   属性,代码如下:    
<appSettings>    
        <add   key= "ReportViewerMessages "   value= "AdminConsole.App_Code.ReportViewerMessagesZhcn,App_Code "   />    
  </appSettings>    

<add key="ReportViewerServerConnection" value="MyNamespace.MyClass, MyAssembly"/>

   MSDN: http://msdn.microsoft.com/en-us/library/ms251661%28v=vs.80%29.aspx


附:、

   reportviewer报表在fireFox中无法根据报表宽度自动设置自身宽度解决办法 :

   (http://stackoverflow.com/questions/949165/report-viewer-width-problem-in-mozila)

  添加 css

   <styletype="text/css">
    html
, body, form
   
{
       
width:100%;
       
height:100%;
       
margin:0;
       
padding:0;
   
}
    table
#rptvReport
   
{
       
display: table !important;
       
background-color:White;
       
min-height:500px;
   
}
</style>

 

 

 

VS2008报表dll3个

VS2010报表dll3个//

 

但是,请注意:sql reporting 2008 和2008 R2使用的DLL是不同的,而这两组DLL在GAC中多有注册。如果是2008 R2+vs2010的reporting viewer中使用错误的DLL,会发生加载失败的Exception

 

你可能感兴趣的:(解决报表控件的中英文问题)