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
{
IReportViewerMessages Members#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:
< globalization uiCulture ="zh-CN" culture ="zh-CN" />
< system.web >
< add key ="ReportViewerMessages" value ="WebReport.ReportViewerMessagesZhcn,App_Code" />
</ appSettings >