我创建了一个包含两个列组(年和季度)的矩阵。
四分之一标签([年]下的表达式)的表达式为:
"Q " & CStr(Fields!quarter.Value)
因此,在报告中,我将Q1,Q2,Q3和Q4视为季度标签。
我们有一个国际团队,所以我需要其他标签是德语或英语,具体取决于用户。所以我创建了一个包含所有翻译的数据集,这些翻译是从数据库中的转换表中填充的。要获得标签的正确翻译,我使用 LOOKUP()函数。
当我使用LOOKUP()获取“余额”文本框(位于年份组)的正确翻译时,它可以正常工作:
=LOOKUP(11, Fields!ID.Value, Fields!description.Value, "ds_Labels")
结果:
但是,当我尝试使用LOOKUP()来获取位于季度组中的“金额”文本框的翻译时,会显示正确的翻译,但年份标签也会从2014年开始而不是2008年和季度和年份标签重复:
=LOOKUP(17, Fields!ID.Value, Fields!description.Value, "ds_Labels")
结果:
我不知道这是什么类型的错误以及如何摆脱它。也许有人可以帮助我:)。
更新
就像我在评论中提到的那样,LOOKUP()函数在季度组的前三列中起作用。如果我尝试在季度组的第四个文本框中使用LOOKUP(),那么报告会变得疯狂(请参阅第二个最后一个屏幕截图)。但我仍然不明白为什么......
更新2
当我在SSRS 2008R2上部署报告时,报告完全正常。但我需要它在SSRS 2012上运行。也许这是一个SSRS2012错误?
答案 0 :(得分:1)
您是否确定在查找与ID 17关联的记录时只返回一条记录?该功能旨在用于1对1关系
答案 1 :(得分:0)
我相信这是一个错误。针对当前在Tablix中呈现的相同数据集运行Lookup()
/ LookupSet()
查询会导致重复。
我找到的唯一解决方法是传递数据集的副本并对该副本运行Lookup()
个查询。这样一切都很好。