我对这种情况非常困惑,我写了很多IIF语句,总是让它们起作用。我的数据集中有两列名为CATEGORY和PCT,我要做的是返回CATEGORY中仅一个特定值的PCT值。
例如,我有以下数据表
Category PCT
A .50
B .75
我在报告上放置了一个文本框,并编写了以下表达式,以便在Category = B时返回PCT值,如下所示:
=IIF(Fields!Category.Value = "B", Fields!PCT.Value, " ")
由于某种原因,此表达式每次都返回空。当我把Fields!Category.Value放在文本框中作为测试时,值A返回,这是预期的。
我真的被这个抛弃了,我知道我错过了一些非常简单的事情 - 有人可以帮忙吗?
答案 0 :(得分:2)
重要的是我们理解文本框的上下文,因为表达式似乎是有效的。
如果您在报表上放置了一个文本框并使用了上面的表达式(对数据集的引用),则只会评估数据集的第一行。在这种情况下,表达式将始终评估为相同的结果。
您能否确认您使用的控件确实是文本框?如果是,那么我相信你确实需要对数据集的引用,表达式看起来更像是这样:
= iif(First(Fields!Category.Value,“datasetName”)=“B”,First(Fields!PCT.Value,“datasetName”),“”)
这只会评估数据集中的第一行。
如果您使用原始表达式在Tablix中执行此操作,那么它应该可以正常工作。