2014-07-07 59 views
0

我正在嘗試爲Qlikview 11SR2使用擴展。數據加載到qlikview擴展將this.Data

我試着用this.Data.Rows訪問數據,但是即使數據不是空的,這個對象也是空的,我可以在表中顯示數據。

我用的代碼是:

var obj = this.Data; 

for(var prop in obj) { 
    var div = document.createElement("div"); 
    div.innerHTML = "" + prop + "" + obj[prop]; 
    this.Element.appendChild(div); 
} 

我有沒有互聯網接入 - 我脫機工作。

我該如何讓this.Data.Rows包含數據(它是未定義的)?

回答

0

根據您的意見,我會說這可能是值得嘗試訪問您的數據的方式稍有不同的this.Data.Rows對象包含行對象又包含一個或多個對象,涉及的尺寸和集合傳遞給腳本的措施(並在definition.xml中定義)。

例如,假設我有一個以維度和度量爲特徵的擴展(按該順序)。我可以在一個循環中訪問這些每個值如下:

for (var rowIx = 0; rowIx < this.Data.Rows.length; rowIx++) { 
    var row = this.Data.Rows[rowIx]; 
    myDimensionValue = row[0].text; 
    myMeasureValue = row[1].text; 
} 

然後我就可以的myDimensionmyMeasureValue每個值代碼添加到輸出迴路,如在你的情況下添加新div每組值。

我在編寫擴展時發現「QVConsole」擴展是無價的,因爲它允許您在QlikView文檔中擁有JavaScript控制檯,因此您可以使用類似console.log(myDimensionValue)等語句來幫助您調試擴展。您可以從https://github.com/thomasfriebel/QvConsole下載。

+0

我認爲我的definition.xml文件已經定義好了,我怎麼能確定? –

+0

我在此代碼中訪問this.Data.Rows: var obj = this.Data; (var prop in obj){ \t var div = document.createElement(「div」); \t div.innerHTML =「**」+ prop +「**」+ obj [prop]; \t this.Element.appendChild(div); } 行中打印的值爲空。 –

0

在web瀏覽器中的擴展對象中,設置維度和有效的表達式。讓我知道它是否有效!