使用Tablix和分组的SSRS报告

时间:2019-01-22 08:32:59

标签: reporting-services ssrs-2012 ssrs-tablix ssrs-grouping

我一直在研究具有以下结构的SSRS报告:

SSRS Template

“实际值”部分是用于聚合目的的行组。 “问题”部分是“详细信息”组。

报表本身会显示实际值和预期值,如果“实际值”部分中的相关值不同,则应将其显示为红色(值1,值2等)。

我已经使用此模板实现了SSRS报告,但是我正在努力为受影响的单元着色。

对于实例,对于“实际值”部分中的第一条汇总行-“问题”部分中也存在Value3 = 4,因此我想使用红色填充“实际值”部分下的Value3单元格。这样的东西显然行不通:

=IIF(Fields!Value3.Value = Fields!Actual Values.Value, "Tomato", "Transparent")

我尝试使用Lookup,但是它仅适用于第一个匹配项,并且仅覆盖第一个汇总行:

=IIF(Value3 = Lookup("Value3",Fields!BreakName.Value,Fields!AccountEntityId Values.Value,"DataSet"), "Tomato", "Transparent")

基本上,我需要针对“实际值”部分中的每一行遍历“问题”部分中的每条记录,比较值,如果匹配则将填充颜色更改为红色。

请问您是否有办法实现这一目标?

1 个答案:

答案 0 :(得分:0)

您基本上需要比较当前用于显示数据的表达式。

我假设“问题”部分是详细信息部分(未分组),并且左侧的“实际值”部分已分组,组名称为myRowGroup

此答案的下一个假设是,最后一列中的'4'具有一个简单的表达式=Fields!myActualValue.Value。如果这是总和或其他任何值,则需要相应地更改下面的表达式。

最后,我假设第三列中“ 4”的表达式为=SUM(Fields!myActualValue.Value)

在看不到设计的情况下,很难给出确切的答案,但是表达式应该看起来像。

=IIF(Fields!myActualValue.Value = SUM(Fields!myActualValue.Value, "myRowGroup"), "Tomato", Nothing)

这基本上是说:“检查当前上下文(明细行)中的myActualValue,并将其与当前行组上下文中的myActualValue的总和进行比较。

如果这样做没有帮助,请在报表设计中显示显示的行组和使用的数据集的结果。