Reporting Services - 将标签翻译成不同的语言

时间:2010-01-13 13:00:55

标签: reporting-services ssrs-2008

我正在SQL Server 2008 Reporting Services项目中完成报告,作为最后一步,我需要将内容翻译成可用的。

由于我有一堆报告,并且它们都共享一些相同的标签,我决定将我需要显示的所有标签放到SQL Server表中,然后我将这些内容显示为DataSet dsReportLabels在我的报告中。

此DataSet基本上包含两个字段:LabelName是标签的名称(例如“项目数”),Caption包含要在报告中显示的所选语言的文本。

但现在我的心理障碍是:如何将dsReportLabels.Caption值分配给例如文本框,基于dsReportLabels.LabelName

所以我需要类似(伪LINQ语句)的东西:

Textbox1.Value = from dsReportLabels 
                 where LabelName = "some value" 
                 select Caption;

但是如何在Reporting Services代码段中表达这一点?

我知道如何引用Parameters!MyParameterName.Value之类的内容等等 - 但是当我尝试从DataSet的一列中提取值时,这并不适用于此,给定另一列的值在那个DataSet中。

我敢打赌,这最终很容易做到....现在似乎无法绕过这个......有谁在那里知道怎么做?

1 个答案:

答案 0 :(得分:1)

这篇MSDN博客文章描述了一种做法。基本上:

  1. 使用LabelID,语言和标题创建查找表。
  2. 创建一个存储过程,获取指定语言的所有labelID和标题。
  3. 将SP的结果存储在数据集中。
  4. 将数据集存储在多值参数中。
  5. 在自定义查找功能中使用多值参数。
  6. 因此,标签文本框中的表达式将使用labelID调用自定义函数,该函数将获得适当语言的相应标题。

    Report Server 2008还有一个内置的Lookup功能,可以让你跳过步骤4和5.如果是这种情况,你的表达式会调用内置的查找功能,它会直接转到数据集。我没有RS 2008,所以我无法测试。