icCube - нарастающий итог на диаграмме

У меня есть последовательная диаграмма icCube, которая отображает меру для списка элементов, упорядоченных от большего к меньшему.

Я хотел бы использовать для отображения совокупного итога без использования MDX, но с помощью построителя выражения функции. К сожалению, я не могу заставить его работать, я, вероятно, делаю что-то неправильно в синтаксисе.

Кто-нибудь знает, как сделать конструкцию javascript, чтобы получить совокупное значение.

Например. результат MDX дает:

  • пункт1 10
  • пункт2 6
  • пункт3 2

Я хотел бы, чтобы виджет представлял данные как:

  • пункт1 10
  • пункт2 16 ( 10 + 6 )
  • пункт3 18 ( 10 + 6 + 2 )

И - пожалуйста - чистый javascript на определение значения в графе с использованием функций из библиотеки.


person Arthur    schedule 16.05.2017    source источник


Ответы (1)


В части Data Render, виджете, мы должны определить функцию javascript как поле значения. Мы добавим функцию для прямого вычисления кумулятивного, но для мы можем использовать:

var ri = context.rowIndex;  // current row Index
var cumVal = 0;
var isNotNull = false;    // we've to add an ic3Add that supports nulls/empty
for ( var row = 0 ; row <= ri; row++ ) {   // all former including this
  var cellVal = context.getValue(row);
  cumVal += cellVal || 0 ; // handle 'empty' 
  isNotNull = isNotNull || cellVal;
}
// the job is done
if (isNotNull) 
    return cumVal;
else
    return 

введите здесь описание изображения

Обновление для icCube v 6.2 (4285)

icCube 6.2 представил новые накопительные функции:

cumulativeRow(row:CtxCoord, measure?:CtxCoord, property?:string):number
cumulativeCol(column:CtxCoord, measure?:CtxCoord, property?:string):number
cumulativeTable(row:CtxCoord, column:CtxCoord, measure?:CtxCoord, property?:string):number

С помощью этих новых функций новое значение свойства Value должно быть следующим:

return context.cumulativeRow();
person ic3    schedule 16.05.2017
comment
Спасибо. Попробую это. - person Arthur; 22.05.2017