загрузка данных в расширение qlikview this.Data

Я пытаюсь использовать расширение для 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 содержать данные (они не определены)?


person david lopez    schedule 07.07.2014    source источник


Ответы (2)


Основываясь на ваших отзывах, я бы сказал, что, возможно, стоит попробовать немного другой способ доступа к вашим данным, поскольку объект this.Data.Rows содержит набор объектов строк, которые, в свою очередь, содержат один или несколько объектов, которые относятся к измерениям и мерам, переданным в script (и определены в 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» бесценным при написании расширений, так как оно позволяет вам иметь консоль JavaScript в вашем документе QlikView, поэтому вы можете затем использовать такие операторы, как console.log(myDimensionValue) и т. д., чтобы помочь вам отладить ваше расширение. Вы можете загрузить его с https://github.com/thomasfriebel/QvConsole.

person i_saw_drones    schedule 07.07.2014
comment
Я думаю, что мой файл определения.xml правильно определен, как я могу быть уверен? - person david lopez; 07.07.2014
comment
Я получаю доступ к 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); } Значение, напечатанное в строках, пустое. - person david lopez; 07.07.2014

В вашем объекте расширения в веб-просмотре установите размер и допустимое выражение. Дайте мне знать, работает ли это!

person rajesh pillai    schedule 24.08.2015