格式化 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
始终具有 Highlight
值1
) 或如果 任何 行的 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").
我在 SQL Server Reporting Services 中有一个矩阵,一般来说,它正在做它需要做的事情。但是,我试图根据按列分组的值来格式化整行的背景颜色。我的问题是任何没有值的单元格都没有背景颜色。所以,我的原始数据是:
这将在我的矩阵中显示为:
然后在每一行上放置一个背景格式:
=IIf(Fields!Highlight.Value="1", "Yellow", "White")
不幸的是,最终结果是:
我假设我可以 return 我的 Mark
记录集中的另一行,条件是 Y
和一个 NULL
或空字符串和一个 Highlight
值为 1,但这需要一些努力。有没有办法让整行的高亮值分组?
我假设您的 Highlight
列对于具有相同值的每个 User
值具有相同的值(即 Mark
始终具有 Highlight
值1
) 或如果 任何 行的 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").