在BIRT中隐藏网格/表格,而不是数据源的结果

我无法在birt中更改报告以满足我的团队规范。

问题是:我正在从jdbc数据源生成报告。 我从数据库中选择项目,以便有一行或没有。 如果返回了一行,我会显示反映结果的数据。 如果没有返回行,我应该隐藏数据应该显示的整个网格并显示一条简单的消息,“无法找到数据”。

我尝试了不同的操作,例如向查询添加计数和从插件中计算的计数,但如果没有给出结果,那么就没有计算结果了。 我还尝试创建一个默认为true的布尔参数showHideData,如果其中一个关键字段为null,则showHideData设置为false。 这看起来像这样(我把它放在数据集afterClose脚本选项):

if(row["FIRM"] != null){ params["showHideData"] = true; }else { params["showHideData"] = false; } 

不幸的是,这给了我一个javascript错误,说它无法访问null值。 我不知道该怎么做因为我不熟悉Javascript,但我很感激你能给予的任何帮助。

您可以使用属性编辑器上的visibilty选项卡执行此操作。

  1. 在您的数据表(或包含它的网格,如果您想隐藏整个网格)转到绑定选项卡。
  2. 添加function“COUNT”的聚合,并为表达式选择一个数据集字段。
  3. 转到属性 – > Visibilty选项卡并勾选“隐藏元素”,并在表达式中将行[“Aggregation”] == 0替换为聚合名称(如有必要)。
  4. 创建包含“无数据存在”标签的1×1网格。
  5. 将网格与数据集关联,并添加与上面相同的聚合。
  6. 在“可见性”选项卡上再次单击“隐藏元素”,但此时使用行[“聚合”]!= 0