3

我有一个 icCube 序列图,它显示了从大到小排序的项目列表的度量。

我想在不使用 MDX 的情况下显示累计总数,而是使用函数表达式生成器。不幸的是我不能让它工作我可能在语法上做错了什么。

有人知道如何制作 javascript 构造来获得累积值。

例如。MDX 结果给出:

  • 项目 1 10
  • 项目 2 6
  • 项目 3 2

我希望小部件将数据显示为:

  • 项目 1 10
  • 项目 2 16 ( 10 + 6 )
  • 项目 3 18 ( 10 + 6 + 2 )

并且 - 请 - 使用库中的函数在图中的值定义上使用纯 JavaScript。

4

1 回答 1

2

在 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();
于 2017-05-16T15:47:36.357 回答