部署时SSRS颜色表示不起作用

时间:2018-08-01 08:20:30

标签: reporting-services sql-server-2016 ssrs-2016

在SSRS 2016中,我有一个使用递归父级层次结构的矩阵,并且在列组之外具有以下表达式,该文本框是Color属性的引用,用于将文本设置为White或Black:

=IIF(Level() = 0 And Fields!HasChildren.Value, "White", "Black")

使用SQL Server数据工具中的预览,这可以很好地工作,但是当在报表管理器中查看此表达式为true的部署的报表时,行组文本框具有黑色文本而不是白色,而列组文本框具有白色文本如预期的那样。

如果在表达式为true时将报表导出到Excel,Word,PDF,MHTML,则所有文本均为白色。这似乎是ReportViewer的问题,在IE11和Chrome 68.0.3440.84中是相同的

将表达式直接放在文本框中不能解决问题,我发现如果将实际表达式与占位符放在同一文本框中,则属性设置正确。

关于如何解决此问题的任何建议?

预期: enter image description here

实际: enter image description here

3 个答案:

答案 0 :(得分:0)

我也有这个问题。不知道是否可以具体确定它,但是我所做的是查看行中每个单元格的canGrow和canShrink属性,并确保它们的设置方式相同。就我而言,两者都设置为true。一旦完成此操作,颜色就会在SSRS中正确显示在屏幕上。

在这里查看是因为我遇到了一个非常不同的问题,就是我把头撞在墙上,因为问题所在是该字段的设置对于同一行中的单元格是不同的。

答案 1 :(得分:0)

我发现基于表达式的前景颜色属性不会传播到第一列,并且不会传播到任何具有canGrow false的单元格。 canShrink无效。其他单元格属性没有显示此问题。

感谢liver.larson。

答案 2 :(得分:0)

我相信Microsoft提供的此补丁程序可以正确解决该问题:

[https://support.microsoft.com/zh-cn/help/4338240/kb4338240-fix-toggle-item-font-color-and-background-color-expressions] [1]

如果您的组织不允许您部署此修补程序,则一种解决方法是将单元格内容放入HTML占位符,然后使用等标记(可能有条件地生成)来控制格式细胞。如果单元格中包含数字信息,请将文本框格式更改为“常规”,然后在单元格的值表达式中使用format()函数将值转换为文本(格式字符串可以是该单元格“属性”窗口中的格式字符串) )