我的 SSRS 报告中需要一个行值,该值是根据报告中已使用的几个字段计算得出的。我希望它显示在名为“textboxPercentageValue”的文本框中。用半简单的英语来说,表达式/公式是:
If the value of the "Week" field is "WK1", display the value of the Variance field divided by the value of the Price field; otherwise, just display the value from the Variance field.
在 VB 脚本 gobbledygook 中,我添加到 textboxPercentageValue 的 Value 属性的表达式/公式是:
=IIF((Fields!Week.Value="WK1"), Fields!Variance.Value / Fields!Price.Value, Fields!Variance.Value)
然而,当我尝试将 .rdl 文件上传到 SQL Server Reporting Services 时,我得到:
"文本框“textboxPercentageValue”的值表达式直接引用字段“Week”,而不指定数据集聚合。当报表包含多个数据集时,数据区域外部的字段引用必须包含在指定数据集范围的聚合函数中。 (rsFieldReferenceAmbigously) 获取联机帮助文本框“textboxPercentageValue”的值表达式直接引用字段“Variance”,而不指定数据集聚合。当报表包含多个数据集时,数据区域外部的字段引用必须包含在指定数据集范围的聚合函数中。 (rsFieldReferenceAmbigously) 获取联机帮助
文本框“textboxPercentageValue”的值表达式直接引用字段“Price”,而不指定数据集聚合。当报表包含多个数据集时,数据区域外部的字段引用必须包含在指定数据集范围的聚合函数中。 (rsFieldReferenceAmbigously) 获取联机帮助
文本框“textboxPercentageValue”的值表达式直接引用字段“Variance”,而不指定数据集聚合。当报表包含多个数据集时,数据区域外部的字段引用必须包含在指定数据集范围的聚合函数中。 (rsFieldReferenceAmbigously)"
那么我需要做什么才能使这个表达式/公式对于 SQL Server Reporting Services 或 VBScript 解析器或抱怨它的“任何人”来说都明确呢?
听起来您的文本框已添加到报告中不是“数据区域”的区域(例如表格或列表)。数据区域将对特定报表数据集的引用作为其属性之一,因此 Reporting Services 知道该数据区域内的所有字段引用都引用该数据集。这个错误试图(以相当冗长的方式)表达的是:
- 如果引用数据区域之外的字段,则该引用需要位于聚合表达式(例如 Sum())内 - 这是因为数据集可能包含该字段的多行,但在数据区域之外,文本框只能显示单一值。
- 此聚合表达式还必须包含对该字段所来自的报表数据集的引用
因此,如果字段“WK1”来自数据集“MyDataset1”,则引用该字段的表达式将如下所示:
=Sum(Fields!WK1, "MyDataset1")
也可以看看:在表达式中使用数据集字段集合引用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)