我的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'而不指定数据集聚合。当报表包含多个数据集时,数据区域外的字段引用必须包含在聚合中指定数据集范围的函数。(rsFieldReferenceAmbiguous)获取联机帮助文本框'textboxPercentageValue'的值表达式直接指向字段'Variance'而不指定数据集聚合。当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中。(rsFieldReferenceAmbiguous)获取联机帮助 文本框'textboxPercentageValue'的值表达式直接指向“价格”字段,而不指定数据集聚合。当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中。 (rsFieldReferenceAmbiguous)获取在线帮助 文本框'textboxPercentageValue'的值表达式直接指向字段'Variance'而不指定数据集聚合。当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中。 (rsFieldReferenceAmbiguous)“
那么我需要做些什么来使这个表达式/公式明确无法与SQL Server Reporting Services或VBScript解析器或“谁”抱怨它?
答案 0 :(得分:7)
听起来您的文本框已添加到报告中不是“数据区域”(例如表格或列表)的区域。数据区域将引用特定报表数据集作为其属性之一,因此Reporting Services知道该数据区域内的所有字段引用都引用该数据集。这个错误试图说(以相当冗长的方式)是:
因此,如果字段“WK1”来自数据集“MyDataset1”,那么引用该字段的表达式将如下所示:
function upload($formkey, $autopublish = true) {
// something here
if($autopublish) {
publish();
}
}
另请参阅:Using Dataset Fields Collection References in Expressions
答案 1 :(得分:1)
这是一个有趣的问题,因为如果您的报表中仅设置了1个数据集,则不需要表,则可以直接引用该表中存在的字段。
但是,如果您有多个数据集,则必须创建一个表,该表可能会为您提供多行。然后,您可能必须按此字段分组,并隐藏多余的列和行。但是,您不能在TEXTBOX中显示此数据,但是可以创建一个可以容纳表格和另一个文本框的矩形。或直接显示表格。