我有一个icCube序列图,它显示了一个测量项目列表的顺序,从大到小顺序排列。
我想用来显示累计总数而不使用MDX,而是使用函数表达式生成器。不幸的是,我无法使其正常工作,我可能在语法方面做错了。
有人知道如何制作JavaScript构造以获得累计值。
例如。 MDX结果给出:
项目1 10
项目2 6
项目3 2
我希望小部件将数据呈现为:
项目1 10
item2 16(10 + 6)
项目3 18(10 + 6 + 2)
并且-请使用库中的函数在图上的值定义上使用纯JavaScript。
最佳答案
在“数据呈现器”部分的小部件中,我们必须将javascript函数定义为value字段。我们将添加该函数以直接计算累计值,但是我们可以使用:
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();
关于iccube-reporting - icCube-图表中的累计总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44004905/