SSRS表达式 - 基于密集秩函数的交替行颜色

时间:2017-03-23 02:38:25

标签: reporting-services sql-server-2014 ssrs-2008-r2

我有一份SSRS报告,其中我一直使用标准表达式来交替行颜色:

=IIF(RowNumber(Nothing) Mod 2 = 0, "LightGrey", "White")

但是这个特殊的报告显示客户有重复的SSN,所以我添加了一个DENSE_RANK窗口函数,所以每个SSN都会分配相同的DENSE_RANK值 - 我希望这将允许我将行颜色基于DENSE_RANK而不是简单的交替行颜色表达。

例如,

  

客户ID:1,SSN:123456789,DENSE_RANK:1

     

客户ID:2,SSN:123456789,DENSE_RANK:1

     

客户ID:3,SSN:987654321,DENSE_RANK:2

在报告中,我的目标是将DENSE_RANK 1值设置为一种颜色,而将DEN​​SE_RANK 2设置为不同颜色 - 显然,这将继续使用与报告中一样多的重复SSN。我尝试修改原始表达式如下:

=IIF(RowNumber(Fields!SSNRanking.Value) Mod 2 = 0, "LightGrey", "White")

SSNRanking是我给DENSE_RANK函数的别名,当我尝试预览报告时收到以下错误消息:

  

文本框的背景颜色表达式" CustomerID"具有对聚合函数无效的scope参数。 scope参数可以设置为一个字符串常量,该常量等于包含组的名称,包含数据区域的名称或数据集的名称。

有没有办法构建表达式来实现我的目标?

谢谢,

1 个答案:

答案 0 :(得分:1)

你不能删除Rownumber并修改Fields!SSNRanking.Value?