格式化 SSRS 矩阵中的非填充单元格

Formatting non-filled cells in SSRS matrix

我在 SQL Server Reporting Services 中有一个矩阵,一般来说,它正在做它需要做的事情。但是,我试图根据按列分组的值来格式化整行的背景颜色。我的问题是任何没有值的单元格都没有背景颜色。所以,我的原始数据是:

这将在我的矩阵中显示为:

然后在每一行上放置一个背景格式:

=IIf(Fields!Highlight.Value="1", "Yellow", "White")

不幸的是,最终结果是:

我假设我可以 return 我的 Mark 记录集中的另一行,条件是 Y 和一个 NULL 或空字符串和一个 Highlight 值为 1,但这需要一些努力。有没有办法让整行的高亮值分组?

我假设您的 Highlight 列对于具有相同值的每个 User 值具有相同的值(即 Mark 始终具有 Highlight1) 或如果 任何 行的 Highlight 值为 1,则 User 应始终突出显示。

如果是上述任何一种情况,您应该能够将行突出显示表达式更改为 =IIf(max(Fields!Highlight.Value, "YourRowGroupName") = 1, "Yellow", "White") 以影响整个分组行。

您可能需要稍微复杂一点的表达才能得到您需要的。我建议使用与先前单元格值的比较来尝试获取正确的颜色。

=IIf(Fields!Highlight.Value="1" 
OR (Previous(Fields!Highlight.Value)="1" AND IsNothing(Fields!Highlight.Value)), "Yellow", "White")

这可能有效也可能无效 -- 我不确定您的数据是如何旋转的,但我的想法是检查前一个单元格的突出显示值,但前提是当前单元格没有突出显示值.如果 X 列中的值是空的,这可能是个问题,但在这种情况下,您可以尝试添加基于用户的类似比较。

...AND Previous(Fields!User.Value) = Fields!User.Value

无论如何,您明白了,我相信您可以根据自己的需要进行调整。

我最后只是在我的行组中添加了一个名为 Row_Highlight 的变量,并将其设置为等于字段!Highlight.Value。我也可以将其设置为 MAX(Fields!Highlight.Value) 如果突出显示值在用户中有所不同。然后我的格式表达式变成了 IIf(Variables!Row_Highlight.Value="1", "Yellow", "White").