我试图使用Qlikview 11SR2的扩展程序。
我尝试使用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 :(得分: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;
}
然后,我可以添加代码以将myDimension
和myMeasureValue
的每个值输出到循环中,例如在每种情况下为每组值添加新的div
。
我发现“QVConsole”扩展在编写扩展时非常有用,因为它允许您在QlikView文档中使用JavaScript控制台,因此您可以使用console.log(myDimensionValue)
等语句来帮助您调试扩展。您可以从https://github.com/thomasfriebel/QvConsole下载。