BIRT如何设置/获取项目的值

时间:2014-10-08 07:10:21

标签: javascript html birt

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

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

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

1 个答案:

答案 0 :(得分:1)

首先,您必须对以下事实感到满意:虽然BIRT脚本称为“javascript”,但当OpenLayers是客户端服务器端 API > javascript API。特别是,这意味着我们无法直接访问OpenLayers事件中的报表项。

我们可以通过将所需的所有项值放在客户端变量中来解决此问题,以便我们稍后可以在客户端javascript代码中使用它们。这可以通过在BIRT报告中创建设置为“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代码动态设置这些元素。