【问题标题】:Using IIF and AND in SSRS Expression在 SSRS 表达式中使用 IIF 和 AND
【发布时间】:2015-03-26 15:30:47
【问题描述】:

我有一张像下面这样的表格

我想隐藏所有 3 列都是 0 的行。所有列都是 INT 数据类型

我的表情是这样的:

    =IIF((Fields!PastVal.Value=0) AND (Fields!DatePay=0) AND (Fields!Line.Value=0),False,True)

但是除了列标签(标题)之外没有返回任何数据。我的快递有什么问题?

【问题讨论】:

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


    【解决方案1】:

    您是否使用行可见性? True 或 False 用于 Hiding 行,但如果它们等于 0,则将其设置为 false。

    =IIF((Fields!PastVal.Value=0) AND (Fields!DatePay=0) AND (Fields!Line.Value=0), True, False)
    

    但这仍然不能解决问题 - 因为您的示例中有数据,所以应该显示一些列。

    您的数据行是否使用 SUM?如果是这样,您的表达式也需要 SUM。

    =IIF(SUM(Fields!PastVal.Value) = 0 AND SUM(Fields!DatePay.Value) = 0 AND SUM(Fields!Line.Value) = 0, True, False)
    

    【讨论】:

    • 谢谢汉诺威。我的 Sql 表达式是这样的:ISNULL(DatePay,0) AS DatePay。没有 SUM 应用于 SSRS 中的列。有什么区别吗?
    【解决方案2】:

    在 tablix 上创建一个过滤器,您只需在其中添加 3 个条件,为 3 个字段中的每个字段添加一个条件:

    在每个条件上使用<> 作为运算符,并简单地将0 指定为值而不是使用表达式。

    【讨论】:

    • 感谢丹的回复。那是一个打字错误。我仍然无法让它工作。现在我收到错误:“无法比较 System.Int32 和 System.String 的数据类型。请检查过滤器表达式返回的数据类型”
    【解决方案3】:

    感谢大家的好意建议。我的表达一直都是正确的,但是因为我的报告有一个分组,我必须通过单击详细信息通过组属性设置可见性。在此之前,我通过右键单击报告正文中的详细信息行来应用过滤器,但这不起作用。

    【讨论】:

      【解决方案4】:

      感谢大家的贡献。我的错。我的报告有一个组级别,因为我通过右键单击我的 tablix 来应用过滤器,所以这不起作用。我必须通过右键单击行组中的详细信息来完成。

      【讨论】:

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