javascript - BIRT 如何从项目中设置/获取值

标签 javascript html birt

首先,是否可以仅使用Javascript进行开发(不使用任何Java函数)? 我无法从标签/表格/图表等项目中获取/设置值,是否可以从 HTML 按钮项目调用它们?

我目前正在使用 Openlayers 和 BIRT。该 map 将位于 BIRT 报告内,通过单击 map 中的某个区域,它应该获取值并将其存储在标签之类的项目中。问题是如何设置/获取项目。

我尝试使用与 Java/C# 相同的过程,其中在名为 txt1 的文本字段上获取或设置值将像以下一样简单。 txt1.setValue("嗨");我如何在 BIRT 上使用 Javascript 做同样的事情?

最佳答案

首先,您必须接受这样一个事实:虽然 BIRT 脚本称为“javascript”,但当 OpenLayers 是客户端时,它实际上是一个服务器端 API > JavaScript API。特别是,这意味着我们无法直接从 OpenLayers 事件访问报表项。

我们可以通过将所需的所有项目值放入客户端变量中来解决此问题,以便稍后可以在客户端 JavaScript 代码中使用它们。这可以通过在 BIRT 报告中创 build 置为“HTML”的隐藏文本元素来实现,然后将一些值存储在对象中。例如 this sample 就是这样的有效。

在报告的开头,我们在隐藏的 HTML 文本元素中初始化一个名为“report”的客户端对象,如下所示。例如,假设我们的报告有两个参数“param1”和“param2”,我们可以使用“VALUE-OF”标签存储它们:

<script>
  report={};
  report.param1='<VALUE-OF>params["param1"].value</VALUE-OF>';
  report.param2='<VALUE-OF>params["param2"].value</VALUE-OF>';
  report.countries={};
</script>

现在,从 OpenLayers 事件中,您只需使用表达式 report.param1

即可获取报表参数

请注意,在此示例中,我们还初始化了一个名为“countries”的表对象。如果我们需要访问 birt 表的数据字段的值,可以使用它,以便稍后在客户端 JavaScript 中使用它。为了实现这一点,我们在表行中添加另一个隐藏的 HTML 文本元素,存储我们想要的信息。在此示例中,我们存储与表中每个国家/地区关联的数值:

<script>
  report.countries['<VALUE-OF>row["countryID"]</VALUE-OF>']=<VALUE-OF>row["value"]</VALUE-OF>;
</script>

在 Openlayers 事件中,我们现在可以通过名为“myCountryID”的变量访问此 BIRT 表提供的值,其表达式如下:report.countries[myCountryID]

关于如何从 javascript“设置”报告元素,考虑到 birt 报告是在服务器端生成的,这是不可能的。然而,我们仍然可以创建具有显式标识符的 HTML 文本元素,然后使用常规 javascript 代码动态设置这些元素。

关于javascript - BIRT 如何从项目中设置/获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26251065/

相关文章:

php - 使用 PHP 动态显示选项值

eclipse - BIRT 自动调整大小网格以匹配表格

java - 根据 birt 报告中的 if 条件显示数据

javascript - jquery accordion 只有少数可扩展

javascript - 我在类里面使用 promise 哪里出错了?

javascript - 带有用户名变量的 Node.js 聊天应用程序无法正常工作

php - 它确实显示了一个用户,但它显示了我在 table 上的所有用户,我只是在寻找一个带有 $_session 的用户

javascript - 返回 Sequelize 中行的自定义值?

javascript - 关闭表折叠行

java - birt、doc 报告和一个非常大的文件