多页SQL Server报告(SSRS)上的条件格式

时间:2015-06-15 09:30:49

标签: sql-server reporting-services

我有一个使用条件格式的报告,通过使用switch语句更改包含表达式的Text Box的字体颜色和背景颜色。

Text Box本身显示=ReportItems!DespatchMethod.Value的值,然后我通过执行以下操作为背景颜色(填充)和字体颜色应用了条件格式:

对于背景颜色:

=SWITCH(Fields!BlackDespMethod.Value = "True", "Black",
Fields!BlackDespMethod.Value = "False", "White")

对于字体颜色:

=SWITCH(Fields!BlackDespMethod.Value = "True", "White",
Fields!BlackDespMethod.Value = "False", "Black")

Switch语句正在查看名为BlackDespMethod的数据集中的字段truefalse。这用于确定要应用于Text Box

的格式

如果报告是单页,则此方法可以正常工作 - 如果BlackDespMethod的值为true,则颜色会按预期更改。但是,如果报告运行到多个页面(即数据集中有多个记录),则它无法正常工作。

例如,如果报告返回40条记录并且BlackDespMethod返回的第一个值为false,则格式不适用于返回值为true的第三条记录 - 它将false格式应用于所有页面。同样,如果第一个值为true,则会将该格式应用于所有页面

我最初尝试过使用IIF语句并且工作方式完全相同。我还考虑使用可见性来显示/隐藏Text Box的不同版本,基于值为true或false,但由于DespatchMethod.Value中值的变化(以及潜在的未来更改)的数量我宁愿避免这种情况。

单元格中表达式本身的值对于每条记录都是正确的(我已经根据报告显示的内容对SQL中的数据进行了三次检查),只是格式化没有正确应用。

任何帮助非常感谢!我找不到其他人和我有同样的问题。这是SSRS中的错误吗?不幸的是,我对SSRS不是很有经验,所以任何关于如何解决这个问题的帮助或指导都会受到赞赏(换句话说,如果你提出复杂的建议或答案,请原谅我缺乏理解)。

0 个答案:

没有答案