1

这是我的报告标题中的一个表达式:

="Display value " & Lookup(Parameters!CycleID.Value, Fields!CycleID.Value, Fields!CycleDateDisplay.Value, "DSCycle")

CycleID并且CycleDateDisplay是 Dataset 中的列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()调用中使用的列?

谢谢!

4

1 回答 1

4

非常简单的答案:该LOOKUP()功能直到 SSRS 2008 R2才存在。如果您尝试在 SSRS 2008 中使用它,您将得到这个确切的错误。

我重写了报告以CycleDateDisplay在每个行项目中包含该值,而不仅仅是在标题中显示它。问题解决了。

于 2013-12-24T19:51:34.483 回答