【问题标题】:Logical AND aggregation in SSRS, RDLCSSRS、RDLC 中的逻辑与聚合
【发布时间】:2013-05-20 07:42:49
【问题描述】:

我使用报表向导创建了一个新的 RDLC 报表,它为我生成了一个 tablix。 tablix 使用 DataSet 属性之一按行对项目进行分组。在每个组之后,通过以下表达式为每个整数列显示一个小计:

=Sum(Fields!SourceCount.Value)

我想做一个类似的“小计”,但对于布尔列 - 它应该返回给定组中值集的逻辑与

【问题讨论】:

  • 如果您告诉我们您的尝试,包括一个示例数据集,以及您是否具体说明您遇到的问题,这会有所帮助。
  • 我需要对一组返回逻辑 AND 的布尔值进行聚合。类似于整数的内置 SUM 函数,例如=And(Fields!SourceCount.Value)

标签: reporting-services rdlc


【解决方案1】:

这个表达对我有用:

=IIf(Sum(IIf(Not(Fields!val.Value), 1, 0)) Mod 2 <> 0
  , false
  , true)

这会计算 FALSE 值的数量;如果数字是偶数,则集合的AND必须是TRUE,否则FALSE

我把下面的放在一起测试一下。

数据集:

设计器中的报告:

逻辑与表达式与上面描述的相同。最终结果:

评论后编辑:

如果您要查找的只是数据范围内是否存在一个或多个 FALSE 值,则可以将表达式更改为以下内容:

=IIf(Sum(IIf(Not(Fields!val.Value), 1, 0)) > 0
  , false
  , true)

因此,如果至少有一个 FALSE 值,则为聚合返回 FALSE

更新报告:

也许这就是你所追求的?

【讨论】:

  • 所以我尝试像这样使用你的表达式 =IIf(Sum(IIf(Not(Fields!SourceCount.Value), 1, 0)) Mod 2 0, false, true) 但它对我不起作用。我有 3 个不同的集合,所有值都是 TRUE,其中 2 个返回 False,一组返回 True。
  • 您可以看到它对我有用 - 为什么不使用 DataSet 的完整详细信息修改您的问题,其中有几行不起作用,所以有一个易于测试的案例?你能确认SourceCount 实际上是一个 boolean 列吗?这个名字会暗示其他情况。
  • 抱歉,我使用了错误的字段是对的。但是,我认为您的解决方案仍然是错误的,因为“False AND False”应该给出 FALSE。基本上,如果有一个 FALSE,整个结果应该是 FALSE
  • 我稍微修改了表达式,如果当前范围内有任何 FALSE 行,则返回 FALSE
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
相关资源
最近更新 更多