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

时间:2019-02-19 13:07:39

标签: reporting-services ssrs-2012

我在SQL Server Reporting Services中有一个矩阵,通常可以做它需要做的事情。但是,我试图根据整列的值设置整个行的背景颜色的格式。我的问题是,任何不具有值的单元格都不会获得背景色。所以,我的原始数据是:

Raw Data

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

Data in a matrix

然后在每一行上,输入以下背景格式:

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

不幸的是,最终结果是:

Formatted Matrix

我假设我可以返回记录集Mark中具有Y条件和NULL或空字符串且Highlight值为1的另一行,但这需要一些努力。有没有一种方法可以获取整行的按突出显示值分组的信息?

3 个答案:

答案 0 :(得分:0)

我假设您的Highlight列中的每个User值都具有相同的值,并且具有相同的值(即Mark的{​​{1}}值始终为{{ 1}}),或者如果行中的任何Highlight值为1,则该Highlight应该始终突出显示。

如果出现上述两种情况,您都应该能够将行突出显示表达式更改为1,以使整个分组行受到影响。

答案 1 :(得分: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

无论如何,您都知道了,我相信您可以根据自己的需求进行调整。

答案 2 :(得分:0)

我最终只是向我的行组中添加了一个名为Row_Highlight的变量,并将其设置为等于Fields!Highlight.Value。如果Highlight值在用户内变化,我也可以将其设置为MAX(Fields!Highlight.Value)。然后,我的格式表达式变为IIf( Variables!Row_Highlight .Value =“ 1”,“ Yellow”,“ White”)。