【问题标题】:SSRS IIF evaluate all the fieldsSSRS IIF 评估所有字段
【发布时间】:2013-04-16 15:47:13
【问题描述】:

我有一个使用 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"

)

【问题讨论】:

  • 你为什么把它放在table之外?行数存在于表的范围内,因此 expression 仅显示 1 行您可以创建一个 column 并编写表达式。

标签: reporting-services iif


【解决方案1】:

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

  • 创建一个Code 这将更新您的外部文本框 (Right click on the report > Report properties > Code tab)
  • 在表格中使用您的表达式。

这些是我能想到的唯一解决方案。

更新 我只是想到了一个对我有帮助的解决方案。

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

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

【讨论】:

    【解决方案2】:

    使用以下表达式:

    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,则该值存在,因此它将显示“是的,我找到了”

    【讨论】:

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