【问题标题】:Works in SSRS 2012, SSRS 2008 says "Report item expressions can only refer to fields within the current dataset scope"在 SSRS 2012 中工作,SSRS 2008 说“报表项表达式只能引用当前数据集范围内的字段”
【发布时间】:2013-12-25 03:51:34
【问题描述】:

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

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

CycleIDCycleDateDisplay 是数据集 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() 调用中使用的数据集中的列?

谢谢!

【问题讨论】:

    标签: reporting-services ssrs-2008-r2


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      相关资源
      最近更新 更多