2014-10-08 63 views
0

值首先,是有可能与只有JavaScript(不使用任何Java功能)来开发? 我无法从标签/表格/图表等项目获取/设置值是否可以从HTML按钮项调用它们?BIRT如何设置/获取从项目

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

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

+0

是的,可以通过将这些报告元素的值放入客户端变量中。您应该更精确地扩展您的需求,以便我们可以尝试给出答案。 – Dominique 2014-10-08 07:25:57

+0

嗨多米尼克,感谢您的回应。我已经编辑了这个问题,以便更具体。 – XScythe 2014-10-08 07:37:21

回答

1

首先,你必须坦然面对的事实是,虽然BIRT脚本被称为“JavaScript的”,它实际上是一个服务器端API时的OpenLayers是客户端的JavaScript API。特别是,这意味着我们无法直接访问来自OpenLayers事件的报告项目。

我们可以把我们所需要的所有项目值客户端变量解决此,让我们可以在客户端的JavaScript代码中使用它们。这可以通过在BIRT报告中创建隐藏的文本元素设置为“HTML”来实现,然后将一些值存储在对象中。例如,这是this sample的工作原理。

在报告的一开始,我们在初始化下面这样一个隐藏的HTML文本元素命名为“报告”一个客户端对象。例如,让我们说,我们的报告有两个参数“参数1”和“参数2”中,我们可以利用它们存储“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代码动态设置这些元素。