我在SQL Server Reporting Services中有一个矩阵,通常可以做它需要做的事情。但是,我试图根据整列的值设置整个行的背景颜色的格式。我的问题是,任何不具有值的单元格都不会获得背景色。所以,我的原始数据是:
这会在我的矩阵中显示为:
然后在每一行上,输入以下背景格式:
=IIf(Fields!Highlight.Value="1", "Yellow", "White")
不幸的是,最终结果是:
我假设我可以返回记录集Mark
中具有Y
条件和NULL
或空字符串且Highlight
值为1的另一行,但这需要一些努力。有没有一种方法可以获取整行的按突出显示值分组的信息?
答案 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”)。