SQL Server Reporting Services 的轻松本地化替代方案?

Posted

技术标签:

【中文标题】SQL Server Reporting Services 的轻松本地化替代方案?【英文标题】:Easily localized alternative to SQL Server Reporting Services? 【发布时间】:2011-05-09 22:32:55 【问题描述】:

我们在本地化 s-s-rS 报告时遇到了有据可查的问题。

谁能推荐一个替代品?假设与 s-s-rS 的功能相同(或几乎相同),尽管我们的许多报告将是简单的表格或图表,带有一些页眉/页脚文本。我们想要一种可以轻松识别可本地化字符串、将它们存储在数据库中、翻译它们,然后在部署时生成本地化“报告定义”的方法。西班牙人看西班牙报道,意大利人看意大利报道,等等。

谢谢大家。

【问题讨论】:

【参考方案1】:

有一本书名为“Microsoft SQL Server Reporting Services Recipes”,其中有几页专门介绍如何本地化 s-s-rS 报告。唯一的限制是参数提示文本仍然只能显示一种语言(因为它不允许表达);但是,如果您通过客户端访问报告,那将不是问题。

它涉及在 VS 中创建一个自定义程序集,该程序集具有一个执行翻译的主要功能(使用本地化资源文件,与您为应用程序执行此操作的方式大致相同)。

然后您在自定义代码中覆盖报表的 OnInit 以使用报表名称初始化自定义程序集资源管理器(因此它知道要查找哪组字符串,我想),然后在您的报告,您可以使用 =Code.my_localizer.GetLocalText("Name")

【讨论】:

您能否详细说明如何本地化 .rdl 上由 ASP.NET ReportViewer 使用的参数文本。 reportViewer 需要本地化。【参考方案2】:

尝试在 s-s-rs 上设置一些参数并创建如下过程:

--TEST
--DECLARE @language int
--SET @language = 2 --1 Italian  --2 Spain

--passing language parameter from s-s-rs report
IF (@language = 1)
    SELECT englishNameField1 as italianFieldName1, englishNameField2 as italianFieldName2, englishNameField3 as italianFieldName3
    FROM tableName
ELSE
    SELECT englishNameField1 as spanishNameField1, englishNameField2 as spanishNameField2, englishNameField3 as spanishNameField3
    FROM tableName  
WHERE parameterFroms-s-rS = @language 

在报告中将参数@language 与用户ID(内置字段)上的一些表达式一起获取语言(本地化)

【讨论】:

我认为您在描述如何从数据库中提取本地化数据。那不是问题。我的意思是报告布局中使用的独立文本。我没有要链接的图像,但是……想象一下列出一个人的销售额的报告。在顶部,一个标签可能会显示“姓名:”,并且在运行时该人的姓名是从数据库中动态插入的。但是如何本地化短语“名称:”?或者在报告的底部,如果页脚中显示“第 1 页,共 5 页”,我如何本地化“页面”和“的”?或者对于我最初的问题,有没有比 s-s-rS 更容易的替代方法? 我真的很想帮助我确定页数是否正确,这是一个在页脚的文本框中放置表达式的示例:="Страна" & Globals!PageNumber & "од" & Globals!TotalPages chinese : ="Page " & Globals!PageNumber & " of " & Globals!TotalPages 现在我正在研究一个可能的解决方案是:将隐藏的参数放在报告上并给出默认值:[&Language],然后在此之后,制作一个本地化的两个不同的表格并显示允许Tablix Visibility with "Hidden" 表达式:= IIF (Parameters!ReportParameter1.Value = "en-Latn-BA", true, false),第二个 Tablix Visibility time: = IIF (Parameters!ReportParameter1.Value = "en-Latn -BA”,假,真)

以上是关于SQL Server Reporting Services 的轻松本地化替代方案?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2012 安装 Reporting Services 目录错误

向 SQL Server Reporting Services 报表添加交替行颜色

Reporting Services SQL Server 2005 文件共享错误

SQL Server Reporting Services显示XML文档错误中禁止的DTD

SQL Server Reporting Services 2005 超链接值?

如何在 SQL Server Reporting Services 2008 中复制报表