【问题标题】:SSRS IIF expressionSSRS IIF 表达式
【发布时间】:2016-10-07 23:26:35
【问题描述】:

在我的 SSRS 报告中,我希望查询中的 PolDiscountPerc 文本框在连续 PolStockCode 为空或空字符串时设为空白,但是如果 PolStockCode 包含一个值,则格式化 PolDiscountPerc 文本框以将其显示为百分比。

=IIF(IsNothing(Fields!PolStockCode.Value) or Fields!PolStockCode.Value is "", "",(Format(Fields!PolDiscountPerc.Value, "0.00") & "%"))

以下查询的问题是它要么什么都不做,要么将表中每一行的文本框设置为空白,尽管事实上它们中的大多数确实包含 PolStockCode。我哪里出错了?

【问题讨论】:

    标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-tablix


    【解决方案1】:

    is 只能用于与nothing 进行比较。你需要使用=

    =IIF(IsNothing(Fields!PolStockCode.Value) or Fields!PolStockCode.Value = "", "",(Format(Fields!PolDiscountPerc.Value, "0.00") & "%"))
    

    【讨论】:

    • 我之前尝试过,它不会将 PolStockCode 为空白的记录设为空白。我忘了提到我在 PolStockCode 上有一个父组,但我认为这并不重要。
    【解决方案2】:

    您可以通过将is 删除为= 并将表达式转换为单个单元() 来尝试吗。

    =IIF
    (
      (IsNothing(Fields!PolStockCode.Value) or Fields!PolStockCode.Value = "")
      , ""
      ,(Format(Fields!PolDiscountPerc.Value, "0.00") & "%")
    )
    

    或者您可以在外部格式化百分比:

    =IIF
    (
      (IsNothing(Fields!PolStockCode.Value) or Fields!PolStockCode.Value = "")
      , ""
      ,Fields!PolDiscountPerc.Value)
    )
    

    【讨论】:

      【解决方案3】:

      我完全忘记了这是数据库中的一个 nchar 字段,它不会是一个空字符串。

      因此这解决了我的问题

      =IIF((IsNothing(Fields!PolPMStockCode.Value) or Len(Trim(Fields!PolPMStockCode.Value)) = 0), "", Fields!PolDiscountPerc.Value)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-10
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多