我使用该Lookup
功能做了一些工作。这仅是 2008R2 及更高版本,但您已经在查看 2008R2 及更高版本的事实Globals!RenderFormat.Name
意味着这没问题。
我的第一个想法是:
=Lookup(Globals!RenderFormat.Name
, Fields!RenderFormat.Value
, Fields!Color.Value
, "Colors")
但这引发了错误。
但是,作为一种解决方法,我在报表中设置了一个文本框来显示=Globals!RenderFormat.Name
,然后基于报表项的表达式:
=Lookup(ReportItems!Textbox1.Value
, Fields!RenderFormat.Value
, Fields!Color.Value
, "Colors")
出于某种原因,这在另一个失败的情况下可以正常工作。
如果需要,您可以将显示渲染格式的文本框设置为隐藏。
其他选项... 通常,对于样式设置,您拥有已经在使用的数据库方法,并通过嵌入式报表代码或部署在服务器上的 DLL 来执行此操作。
仅在报告中嵌入代码并不能真正帮助您获得所需的动态样式,从而留下了 DLL 选项。
这将涉及创建一个带有一些简单函数的 DLL,该函数可以基于参数(即渲染格式全局变量)返回颜色值。
这样做的好处是只有一个代码库,因此更新 DLL 会将其应用于服务器上的所有报告。
这篇博客文章详细介绍了如何使用服务器端 DLL 实现这一点。
缺点是它很复杂,并且确实涉及让 DLL 在服务器上运行,这并不总是微不足道的。