当表没有行时,将表的可见性设置为 false(在报告服务中)
Posted
技术标签:
【中文标题】当表没有行时,将表的可见性设置为 false(在报告服务中)【英文标题】:Set a table's visibility to false when it has no rows (in reporting services) 【发布时间】:2010-10-05 13:40:27 【问题描述】:如果表格没有行,有没有办法将表格的可见性设置为 false?
我想在 Reporting Services 中隐藏一个没有行的表。
在这种情况下,将 NoRows 设置为 ="" 是不够的,因为表格仍有空间,并且表格的某些格式仍然可见。
我正在使用 Microsoft Visual Studio / SQL Reporting Services 2005
【问题讨论】:
我从来没有遇到过这种情况。如果表格没有要显示的数据,则不会发生任何事情 - 除非您已填写 NoRows。表中是否存在与核心数据集无关的其他值? 【参考方案1】:自己找到答案了,很简单。
我发现this article 提到了 CountRows() 函数。
所以要设置 Visibilty / Hidden 属性在没有行时隐藏,很简单
= Iif (CountRows() > 0, false, true)
【讨论】:
【参考方案2】:尝试将表格的“Visibility.Hidden”属性设置为此表达式:
=CountRows() = 0
【讨论】:
谢谢 :) 也很简洁 应该是=CountRow() == 0 不,Reporting Service的内部表达式语言是VB,它只是使用一个=进行比较(以及赋值)。 我的表情似乎总是与我的预期相反。难怪,该表达式正在设置“Visibility.Hidden”,而不是对话框所暗示的“初始可见性”。咕咕咕! 如果您想在 tablix/chart 之外的对象上使用它,例如您需要添加范围的文本框,例如=CountRows("Physical_Servers")=0 其中数据集称为 Physcial_Servers。以上是关于当表没有行时,将表的可见性设置为 false(在报告服务中)的主要内容,如果未能解决你的问题,请参考以下文章
RowDoubleClick 上的 DataGrid RowDetails 可见性
JButton 仅在可见性设置为 True-Java 时有效
ASP.Net GridView 和 TemplateField 可见性 - false 但 ItemTemplate 仍在执行