在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中是相同的
将表达式直接放在文本框中不能解决问题,我发现如果将实际表达式与占位符放在同一文本框中,则属性设置正确。
关于如何解决此问题的任何建议?
答案 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()函数将值转换为文本(格式字符串可以是该单元格“属性”窗口中的格式字符串) )