<< Click to Display Table of Contents >> 定制计算 |
在打开的动态计算对话框中,计算中选择定制选项。
选择定制后打开脚本输入对话框 , 如下图所示,在公用中会有动态计算器相关的函数:
【名称】作为添加动态计算器脚本后数据段的名称。
当用户使用脚本进行动态计算,点击确定按钮后再次进入动态计算对话框,在此框中用户可通过计算依据选项来设定动态计算的方向。当用户需要再次编辑表达式时,点击编辑按钮,则可对表达式进行再次编辑。如下图:
【二次计算】即在当前的表达式中存在其他脚本动态计算数据段名称。如已经存在一个脚本动态计算数据段,名称为 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 字段,并对该字段进行了求和汇总,如下图所示 :
当用户需要为该汇总表中的 PROFIT 字段添加动态计算,脚本内容为 movingMax(sum(col['PROFIT']), 1, 1, true, true); 即移动计算求最大值,如下图所示 :
计算结果如下图所示 :