以下是我的报告标题中的表达式:
="Display value " & Lookup(Parameters!CycleID.Value, Fields!CycleID.Value, Fields!CycleDateDisplay.Value, "DSCycle")
CycleID
和CycleDateDisplay
是数据集DSCycle
中的列。这在SSRS 2012中效果很好,但是当我尝试将相同的报告上传到SSRS 2008R2时,我收到此错误:
The Value expression for the text box ‘Textbox5’ refers to the field ‘CycleID’. Report item expressions can only refer to fields within the current dataset scope or, if inside an aggregate, the specified dataset scope. (rsFieldReference)
(和CycleDateDisplay相同。)
我正在尝试弄清楚如何修改此表达式以满足此处的“数据集范围”问题。我在http://technet.microsoft.com/en-us/library/cc879331%28v=sql.105%29.aspx咨询了TechNet并获得了这些信息:
要指定范围参数,请提供报表项范围内的数据集,数据区域或组的名称。当报表包含多个数据集时,报表正文上的文本框中的聚合表达式必须指定范围参数。例如,
=First(Fields!FieldName.Value, "DataSet1")
(强调添加)现在有可能我不能在标题中使用这种表达式,因为TechNet文本在报表正文中指定了表达式吗?或者,如果可以的话,如何指定要在LOOKUP()
调用中使用的数据集中的列?
谢谢!
答案 0 :(得分:4)
非常简单的答案:在SSRS 2008 R2 之前,LOOKUP()
功能不存在。如果您尝试在SSRS 2008中使用它,您将收到此确切错误。
我重写了报告,在每个订单项中都包含CycleDateDisplay
值,而不只是在标题中显示。问题解决了。