2014-10-08 85 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代碼動態設置這些元素。

相關問題