我有一个使用条件格式的报告,通过使用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
的数据集中的字段true
或false
。这用于确定要应用于Text Box
如果报告是单页,则此方法可以正常工作 - 如果BlackDespMethod
的值为true
,则颜色会按预期更改。但是,如果报告运行到多个页面(即数据集中有多个记录),则它无法正常工作。
例如,如果报告返回40条记录并且BlackDespMethod
返回的第一个值为false
,则格式不适用于返回值为true
的第三条记录 - 它将false
格式应用于所有页面。同样,如果第一个值为true
,则会将该格式应用于所有页面
我最初尝试过使用IIF语句并且工作方式完全相同。我还考虑使用可见性来显示/隐藏Text Box
的不同版本,基于值为true或false,但由于DespatchMethod.Value
中值的变化(以及潜在的未来更改)的数量我宁愿避免这种情况。
单元格中表达式本身的值对于每条记录都是正确的(我已经根据报告显示的内容对SQL中的数据进行了三次检查),只是格式化没有正确应用。
任何帮助非常感谢!我找不到其他人和我有同样的问题。这是SSRS中的错误吗?不幸的是,我对SSRS不是很有经验,所以任何关于如何解决这个问题的帮助或指导都会受到赞赏(换句话说,如果你提出复杂的建议或答案,请原谅我缺乏理解)。