2

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

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

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

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

不幸的是,这给了我一个 javascript 错误,说它无法访问 null 值。我不知道如何做到这一点,因为我不精通 Javascript,但如果你能提供任何帮助,我将不胜感激。

4

1 回答 1

13

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

  1. 在您的数据表(或包含它的网格,如果您想隐藏整个网格)上,转到绑定选项卡。
  2. 使用函数“COUNT”添加一个聚合,并为表达式选择一个数据集字段。
  3. 转到属性-> 可见性选项卡并勾选“隐藏元素”并在表达式中放入row["Aggregation"] == 0如有必要,替换聚合名称。
  4. 创建一个包含“无数据存在”标签的 1x1 网格。
  5. 将网格与数据集相关联,并添加与上述相同的聚合。
  6. 在 Visibility 选项卡上再次单击“Hide Element”,但这次使用row["Aggregation"] != 0
于 2012-07-31T16:01:44.370 回答