快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰平台9411小游戏:实现多国语言的Reporting Services项目



自SQL Server 2005宣布之后,我们开拓报表项目又多了一种选择:Reporting Services。

由于事情的缘故原由,较早就打仗到应用Reporting Services技澳门新葡亰平台9411小游戏巧开拓报表项目,它可以在SQL Server 2005/2008中应用。SQL Server 2000也有Reporting Services,应用的不多。纵然没有购买SQL Server 2005的License,也可以借助于这项澳门新葡亰平台9411小游戏技巧,应用简单轻便的客户端报表(RDLC)。

近来被同伙问到,若何在Reporting Services中实现多国说话。颠末一番探索,找到一个有效的规划。

最简单的法子,便是为每一种说话制作相同的报表文件,只是把里面的Label整个换成该说话的翰墨。比如,为了制作中文和英语两种语种的报表,建立两个报表文件, Customer.rdl和Customer.zh-cn.rdl.

在报表出现的客户端,根据用户的说话偏号,选择出现不合的报表。这种措施简单可行,然则会引起重复。改动一个报表的款式,同时也必须改动另一个报表的款式,掩护起来未方便。

下面先容别的一种措施,应用一个文件来制作不多语种的报表。

先打开BIDS ,新建Reporting Services项目,添加报表。

制作报表涉及到的技巧不繁杂,我们把目标集中在若何实现多国说话。

这个报表读取SQL Server 的Northwind数据库的Customer表,应用Table出现在报表中。

然后设计报表的列,使之出现对应的数据。

在这里,我设计两个地方的Label,必要根据客户真个说话偏号来出现不合的澳门新葡亰平台9411小游戏说话字符。

一个是报表标题,Customer Report,中文是客户报表,还有一个Grand Total,用中文表达是合计

留意:Order ID, Employee ID等Label我都没有实现多国说话,环境类似。

先预览一下报表,确保报表设计没有差错

下面就开始评论争论资本文件的开拓。先给项目添加一个UIResx的Class Library项目。这里,我采纳新建一个办理规划,由于SQL Server 2005的BIDS是用Visual Studio 2005,而我的电脑只安装有Visual Studio 2008。两者不能集成到一个开拓情况中,而且办理规划的版本不兼容。

我只制作两种说话(en-us,zh-cn)的资本文件,应用澳门新葡亰平台9411小游戏StringResources2。

假如您不认识这个对象,请参考我的这篇文章

利用开源项目StringResourceTool2 实现.NET多国说话规划

en-us的文件内容如下

zh-cn的文件内容如下

为了在报表中引用,方便支配时放到GAC中,请给类库添加署名

这样,就做好了资本文件。再回到报表项目中来,做两个小改动

1) 先添加法度榜样集引用,在报表-->报表属性对话框中,添加对资本文件法度榜样集的引用

因为是静态属性,不必要添加实例变量。

2) 在显示报表名字的地方,输入=Report.UIResx.SR.OrderReport

在显示合计的地方,输入=Report.UIResx.SR.GrandTotal

这澳门新葡亰平台9411小游戏便是我们要做的整个,不必要设置报表的的Language属性,如下图,在我电脑中,没有把Language设置为User!Language也可以正常运行。

报表就制作完成,请先支配报表。打开浏览器,在报表浏览器中查看报表

假如看不到效果,要支配UIResx资本文件库,把Report.UIResx.dll和zh-cn/Report.UIResx.resources.dll拷贝到报表办事器所在的目录中。在我的电脑中,这个目录是

D:\Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services\ReportServer\bin

为了更正确的节制报表的显示效果,我们再来制作一个网站,显示我们的报表

新建一个ASP.NET Web site,添加页面文件,如下图

先设计页面的结构。我把用户说话选择和报表显示放在同一个页面中。一样平常的,我们应该在用户登岸的地方,让用户选择说话偏号。页面结构效果如下

回到代码中,看看是若何引用报表的

protected void btnViewReport_Click(object sender, EventArgs e)

{

//设置说话

string language = ddlLanguage.SelectedValue;

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(language);

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(language);

Title = Report.UIResx.SR.OrderReport;

//设置报表

ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;

ReportViewer1.ServerReport.ReportServerUrl = new System.Uri("http://localhost/ReportServer");

ReportViewer1.ServerReport.ReportPath = "/Test/Order";

ReportViewer1.ServerReport.Refresh();

}

运行网站,选择中文,效果如下

再选择英语,效果如下

写完了Reporting Services,忽然很想知道在水晶报表中,是若何实现多国说话的。刚卒业的时刻公司的项目对照多,那时还学会了水晶报表,可惜这几年的事情中没有用到,险些都忘得一干二净。

您可能还会对下面的文章感兴趣: