SSRS - 在子组中使用Lookup进行表达会导致重复标签值

时间:2014-11-06 14:52:45

标签: reporting-services ssrs-2012

我创建了一个包含两个列组(年和季度)的矩阵。

groups

四分之一标签([年]下的表达式)的表达式为:

"Q " & CStr(Fields!quarter.Value)

因此,在报告中,我将Q1,Q2,Q3和Q4视为季度标签。

我们有一个国际团队,所以我需要其他标签是德语或英语,具体取决于用户。所以我创建了一个包含所有翻译的数据集,这些翻译是从数据库中的转换表中填充的。要获得标签的正确翻译,我使用 LOOKUP()函数

当我使用LOOKUP()获取“余额”文本框(位于年份组)的正确翻译时,它可以正常工作:

lookup-amountrest

=LOOKUP(11, Fields!ID.Value, Fields!description.Value, "ds_Labels")

结果:

result1

但是,当我尝试使用LOOKUP()来获取位于季度组中的“金额”文本框的翻译时,会显示正确的翻译,但年份标签也会从2014年开始而不是2008年和季度和年份标签重复:

repeat

=LOOKUP(17, Fields!ID.Value, Fields!description.Value, "ds_Labels")

结果:

repeat2

我不知道这是什么类型的错误以及如何摆脱它。也许有人可以帮助我:)。


更新

就像我在评论中提到的那样,LOOKUP()函数在季度组的前三列中起作用。如果我尝试在季度组的第四个文本框中使用LOOKUP(),那么报告会变得疯狂(请参阅第二个最后一个屏幕截图)。但我仍然不明白为什么......


更新2

当我在SSRS 2008R2上部署报告时,报告完全正常。但我需要它在SSRS 2012上运行。也许这是一个SSRS2012错误?

2 个答案:

答案 0 :(得分:1)

您是否确定在查找与ID 17关联的记录时只返回一条记录?该功能旨在用于1对1关系

答案 1 :(得分:0)

我相信这是一个错误。针对当前在Tablix中呈现的相同数据集运行Lookup() / LookupSet()查询会导致重复。

我找到的唯一解决方法是传递数据集的副本并对该副本运行Lookup()个查询。这样一切都很好。