【问题标题】:SSRS alternate row colors with column groupsSSRS 与列组交替行颜色
【发布时间】:2017-05-17 17:03:01
【问题描述】:

我在 SSRS 中有报告,我可以使用此表达式交替行颜色:

=IIF(ROWNUMBER(NOTHING) MOD 2, "LightSteelBlue","WhiteSmoke")

这很好用。但是,我有一个包含列分组的报告,这似乎弄乱了交替的行颜色。

分组的列将交替使用列颜色而不是行颜色。我已经搜索并找到了行分组的可能解决方案,但没有列分组,或者至少我无法开始工作。我只是想让其他每一行都是“LightSteelBlue”或“WhiteSmoke”,没什么特别的。

有什么想法吗?

【问题讨论】:

  • 我一直觉得在 SSRS 中交替行颜色很烦人。也许尝试将表达式放在行分组的更高位置(我相信这是正确的术语 - 自从我使用 SSRS 以来已经有点过了)
  • 只能轮换主组吗?或者您是否尝试将交替应用到子组?
  • 只有主组是交替的。列分组是行的一部分,因此颜色需要与行的其余部分匹配。我不能把表达式放在行分组上,因为只有一个行分组。

标签: ssrs-2012


【解决方案1】:

这是我想出的解决方案:

  1. 在表格的右端添加一列并将文本框命名为“RowNumber”。将可见性设置为隐藏。

  2. 将表达式添加到 RowNumber 文本框。

     =RunningValue(Fields!last_name.Value & Fields!entity_name.Value, CountDistinct, "dataset name")
    
  3. 将表达式添加到详细信息行的背景颜色:

    =IIF(ReportItems!RowNumber.Value mod 2 > 0, "LightSteelBlue", "WhiteSmoke")
    

RunningValue() 函数需要唯一值。在我的情况下,由于一个成员属于不同的实体,成员名称可以重复多次。因此,我结合了 last_name 和 entity_name 以获得一个唯一值。

希望这会有所帮助。

【讨论】:

  • 您也可以组合这两个表达式,这样您就不需要添加列。 =IIf(RUNNINGVALUE(Fields!last_name.Value & Fields!entity_name.Value,CountDistinct,Nothing) MOD 2, "LightSteelBlue","WhiteSmoke")
【解决方案2】:

尝试使用 runningvalue 而不是 rownumber,其中字段名称是您的详细信息行中的字段:

=iif(VAL(runningvalue(fields!yourfield.Value,countdistinct,nothing)) MOD 2, "LightBlueSteel", "WhiteSmoke")

【讨论】:

  • 如果我用 LastName 的行分组填充 fields!yourField.Value,颜色只会在姓氏更改时交替,这不起作用,因为我有重复同一个人的记录。如果我使用 StatusName 的列分组,它只会将顶行更改为蓝色,其余均为白色。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多