我已经尝试了几乎所有我能想到的东西让它起作用,但无济于事。我有一个文本框,如果某个值为true,我希望字体颜色为浅灰色,如果为false则为黑色。以下是我尝试过的所有表达方式:
=IIF(Fields!is_hold.Value,"LightGrey","Black")
=IIF(Fields!is_hold.Value,"#d2d2d2","#000000")
=If(Fields!is_hold.Value,"LightGrey","Black")
=If(Fields!is_hold.Value,"#d2d2d2","#000000")
=IIF(True,"#d2d2d2","#000000")
=IIF(True,"LightGrey","Black")
=If(True,"LightGrey","Black")
=If(True,"#d2d2d2","#000000")
=SWITCH(True,"#d2d2d2",False,"#000000")
=SWITCH(True,"LightGrey",False,"Black")
奇怪的是,当我将[is_hold]作为参数传递时,它在另一个子报表上工作正常:
=If(Parameters!IsHold.Value, "#d2d2d2", "#000000")
我在Chrome和IE中都试过了。
更新:这仅在文本框中失败。如果我使用相同的表达式设置一行的颜色,它可以正常工作。
更新2:服务器端存在问题。在报表生成器中预览表单时,文本颜色应该完全正确。我检查了为元素自动生成的CSS类,并且在使用表达式时没有颜色属性。如果我直接设置颜色,则CSS中存在颜色属性。重新启动SSRS服务没有帮助。