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

问题描述 投票:0回答:3

我在SQL Server Reporting Services中有一个矩阵,通常是做它需要做的事情。但是,我正在尝试格式化整行的背景颜色,具体取决于按列分组的值。我的问题是任何没有值的单元格都没有获得背景颜色。所以,我原来的数据是:

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

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

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

不幸的是,最终的结果是:

我假设我可以在Mark记录集中返回另一行Y条件和NULL或空字符串以及Highlight值为1,但这需要一些努力。有没有办法按整个行的突出显示值进行分组?

reporting-services ssrs-2012
3个回答
0
投票

您可能需要更复杂的表达式来获得所需内容。我建议使用与之前单元格值的比较来尝试获取正确的颜色。

=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

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


0
投票

我最后只是在我的Row Group中添加一个名为Row_Highlight的变量,并将其设置为Fields!Highlight.Value。如果Highlight值在用户内变化,我可以将它设置为MAX(Fields!Highlight.Value)。然后我的格式表达式变为IIf(变量!Row_Highlight.Value =“1”,“黄色”,“白色”)。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.