Reporting services SSRS IIF评估所有字段

Reporting services SSRS IIF评估所有字段,reporting-services,iif,Reporting Services,Iif,我有一个文本框,它位于使用SSRS 2008的表外。我正在尝试使用下面的代码确定其中是否有任何一行包含2、3或4。这只适用于第一行 有没有一种方法可以让它评估所有字段而不仅仅是第一行 谢谢你的建议 =IIf( ( Fields!Type.Value = "2" Or Fields!Type.Value = "3" Or Fields!Type.Value = "4" ) , "Ye

我有一个文本框,它位于使用SSRS 2008的表外。我正在尝试使用下面的代码确定其中是否有任何一行包含2、3或4。这只适用于第一行

有没有一种方法可以让它评估所有字段而不仅仅是第一行

谢谢你的建议

=IIf(

    (
            Fields!Type.Value = "2"
            Or Fields!Type.Value = "3"
            Or Fields!Type.Value = "4"
        )

        , "Yes, found it.", "No, it's missing"

)

除非定义范围/数据集,否则它将不起作用,
IIf
不支持该范围/数据集。 您可以通过以下方式解决此问题:

  • 创建更新外部文本框的
    code
    右键单击报告>报告属性>代码选项卡
  • 在表中使用您的表达式
这些是我能想到的唯一解决办法

更新 我刚想到一个解决办法,我的朋友会帮上忙的

=IIf(
    Sum(
        IIf(Fields!Type.Value=2, 1, 0), 
        "YourDataSet"
    ) = 0, 
    "Not Found",
    "found " & Fields!Type.Value
)

不确定这是否适用于您的范围,但这是另一种解决方案。

使用以下表达式:

IIF(SUM(IIF(Fields!Type.Value = "2" OR Fields!Type.Value = "3" OR Fields!Type.Value = "4",1,0),"DataSet1")>0,"Yes, found it.", "No, it's missing")
其中DataSet1是数据集的名称


它所做的是计算它找到值2、3或4的次数。如果计数大于0,则该值存在,因此它将显示“是的,我找到了”

为什么要将其保留在
表之外?表的作用域中存在行数,因此
表达式仅显示1行,您只需创建
并写入表达式即可。