定制计算

<< Click to Display Table of Contents >>

当前位置:  制作可视化报告 > > 可视化分析 > 动态计算 

定制计算

Previous pageReturn to chapter overviewNext page

在打开的动态计算对话框中,计算中选择定制选项。

dynamic34

选择定制后打开脚本输入对话框 , 如下图所示,在公用中会有动态计算器相关的函数:

dynamic35

【名称】作为添加动态计算器脚本后数据段的名称。

 

当用户使用脚本进行动态计算,点击确定按钮后再次进入动态计算对话框,在此框中用户可通过计算依据选项来设定动态计算的方向。当用户需要再次编辑表达式时,点击编辑按钮,则可对表达式进行再次编辑。如下图:

dynamic36

【二次计算】即在当前的表达式中存在其他脚本动态计算数据段名称。如已经存在一个脚本动态计算数据段,名称为 movingAVG,当用户在当前的表达式中再次使用,movingAVG数据段,则属于第二次脚本动态计算,如表达式为 movingMin(col[‘movingAVG’],2,2,true,true); 时用户需要勾选二次计算选项。

 

本产品提供了 15 个动态计算函数,如下表所示。

动态计算函数

说明

举例

diff(Object expression, [int position])

返回两个指定值的差值。

diff(col[‘sales’], PREVIOUS) ;

//计算sales字段的差值,当前值与前一个值的差值。

//如果当前值或前一个值为空,返回空。

percentDiff(Object expression, [int position])

返回两个指定值的差值百分比。

percentDiff (col[‘sales’], PREVIOUS);

//计算sales字段中当前值与前一个值的差值百分比。

//如果当前值或前一个值为空或零,返回空。

percent(Object expression, [int position])

返回占指定值的百分比。

percent (col[‘sales’], PREVIOUS);

//计算sales字段中当前值与前一个值的百分比。

//如果当前值或前一个值为空或零,返回空。

percentSum(Object expression)

当前值与总和的百分比。

percentSum(col[‘sales’]);

//当前值除以总的求和值

percentMax(Object expression)

当前值与最大值的百分比。

percentMax(col[‘sales’]);

//当前值除以总的最大值

percentMin(Object expression)

当前值与最小值的百分比。

percentMin(col[‘sales’]);

//当前值除以总的最小值

percentAvg(Object expression)

当前值与总平均值的百分比值。

percentAvg(col[‘sales’]);

//当前值除以总的平均值

movingSum(Object expression,[ int prev, int next, boolean cincludedCurrent, boolean nappended])

移动计算求和,返回从前几个值到后几个值的和

// prev前几个值

//next 后几个值

//cincluded是否包括当前值

//nappended如果没有足够值,是否取空。

movingSum(col[‘sales’], 2, 2, true, true);

//给sales字段,取当前值的前两个,后两个,加当前值,求和。没有足够值取空。

movingAvg(Object expression, [int prev, int next, boolean cincluded, boolean nappended])

移动计算平均值,返回从前几个值到后几个值的平均值

movingAvg(col[‘sales’], 2, 2, true, true);

//给sales字段,取当前值的前两个,后两个,加当前值,取平均值。没有足够值取空。

movingMax(Object expression, [int prev, int next, boolean cincluded,    boolean nappended])

移动计算最大值,返回从前几个值,到后几个值之间的最大值

movingMax(col[‘sales’], 2, 2, true, true);

//给sales字段,取当前值的前两个,后两个,加当前值,求最大值。没有足够值取空。

movingMin(Object expression,[ int prev, int next, boolean cincluded, boolean nappended])

移动计算最小值。(返回从前几个值,到后几个值之间的最小值)

movingMin(col[‘sales’], 2, 2, true, true);

//给sales字段,取当前值的前两个,后两个,加当前值,求最小值。没有足够值取空。

runningAvg(Object expression,[Object reset])

累积计算平均值,返回从第一个值,到当前值,累积求平均

//reset 是从哪个字段开始重新开始累积。

runningAvg(col[‘sales’] col[‘city’]);

//计算sales字段的累积平均值。遇到city字段的分组,重新累积。

runningMin(Object expression,[Object reset])

累积计算最小值, 返回从第一个值,到当前值,累积求最小值)

runningMin(col[‘sales’] col[‘city’]);

//计算sales字段的累积最小值。遇到city字段的分组,重新累积。

runningMax(Object expression,[Object reset])

累积计算最大值,返回从第一个值,到当前值,累积求最大值

runningMax(col[‘sales’] col[‘city’]);

//计算sales字段的累积最大值。遇到city字段的分组,重新累积。

runningSum(Object expression,[Object reset])

累积计算和,返回从第一个值,到当前值,累积求和)

runningSum(col[‘sales’] col[‘city’]);

//计算sales字段的累积求和。遇到city字段的分组,重新累积。

当组件处于聚合状态时,在脚本中引用该字段时要在字段前边加上 Sum、 Avg 等汇总函数的缩写。

 

例如:一汇总表中绑定了 PROFIT 字段,并对该字段进行了求和汇总,如下图所示 :

dynamic37

当用户需要为该汇总表中的 PROFIT 字段添加动态计算,脚本内容为 movingMax(sum(col['PROFIT']), 1, 1, true, true); 即移动计算求最大值,如下图所示 :

dynamic38

计算结果如下图所示 :

dynamic39