我正在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中。
我敢打赌,这最终很容易做到....现在似乎无法绕过这个......有谁在那里知道怎么做?
答案 0 :(得分:1)
这篇MSDN博客文章描述了一种做法。基本上:
因此,标签文本框中的表达式将使用labelID调用自定义函数,该函数将获得适当语言的相应标题。
Report Server 2008还有一个内置的Lookup功能,可以让你跳过步骤4和5.如果是这种情况,你的表达式会调用内置的查找功能,它会直接转到数据集。我没有RS 2008,所以我无法测试。