我想要隐藏一张桌子并报告" No Data"如果查询未返回任何数据,则显示消息。 在计算列中,我添加了计数存在的行数的列(即表检查)。 我在表格下面创建了标签,上面写着#34; No Data"。在脚本onCreate中,我添加了以下代码。
if( countOfRows == 0 ){
this.getStyle().fontStyle = "italic";
this.getStyle().fontSize = "large";
}else{
this.text = "";
}
countOfRows = 0在脚本中初始化。
在表visibilty属性中,选中了Hide Element并在表达式中添加了以下代码。
if (row["TableCheck"] == null){
true
}
else{
false
}
问题:当dataSet为空时#34;无数据"消息正在显示。但是当数据集不为空时,则不会隐藏错误消息。
请告诉我如何解决这个问题。
先谢谢。
答案 0 :(得分:8)
这样做: 首先添加可视元素,以便在数据集不返回任何行时显示它。
然后在报告根的Initialize脚本中定义全局变量。 例如
rowsReturned = 0;
在您的桌面上,您将评估数据集以查看下一个“可见性”选项卡上是否返回了行:
在“可见性”选项卡
上显示没有返回数据时要显示的元素
答案 1 :(得分:2)
如果要在没有返回数据时隐藏表,可以在其Visibility属性中写入:
row.__rownum < 0
并且在您的&#34;无数据&#34;的可见性属性中消息你使用相反的检查:
row.__rownum >= 0
请注意,必须将两个组件绑定到要检查的数据集。对于消息组件,您可以将其放在页眉或页脚行中。
答案 2 :(得分:1)
不使用全局变量的替代解决方案(虽然功能上不完全相同,因为布局总是包含一个表):
为COUNT聚合添加一个绑定numRows,表达式为1。
在表标题行中设置为可见性表达式:
!row["numRows"]
在表格中添加新的页脚行;对于此页脚行设置可见性表达式
row["numRows"]
合并此页脚行中的单元格,然后放置标签&#34;找不到数据&#34;进入表格单元格。