-
tangmq 数据达人Lv4
发表于2019-4-23 09:53
楼主
1 返回分布检验对象
2 聚类函数
3 预测函数
4 钻取函数 1 MKFILTER 5 ARSEL 6 ARSORT 7 ARLEN 8 CALCINF 9 CLVAL 10 CLINF 11 COL 12 ID 13 Predict
extraParameter :第三个参数:当使用某些模型时,用来输入额外参数,为字符型
14 REPLACEREGEX 15 ROW 16 SEL1 17 SELF 18 UPID 19 _rk 20 _ZF 21 _HBZF 22 _ZJE 23 _HBZJE 24 _NCZJE 25 _NCZF 3 _N
一.分布检验
分布函数distribution参数说明:
参数名 | 参数说明 |
name | 分布名称,现支持以下分布: 指数分布检验:exponential 正态分布检验:normal 泊松分布检验:poisson 均匀分布检验:uniform 二项分布检验:binomial |
data | 待检验的分布的数据集合;如果是二项分布和柏松分布,那么此参数是一个二维数组,第一个元素是浮点数组表示观察值,第二个元素是整形数组随机变量; 如果是其他分布,那么此参数需要一个浮点数组。 该数据可以是ardb函数查询出来的数据集,也可以某个对话框OLAP(必须是单维)的某一列数据。 |
frenum | 频数分段,默认值是10 |
coff | 置信度,默认值是0.95 |
以检验正态分布为例子说明该函数的使用:
1.首先在全局对象中定义该分布对象,当要多次调用同一分布函数的属性时,不建议直接在报
表模板中使用分布函数。
distribution('normal',ardb('selectdis from dis','testconn'),20,0.9)
normal 表示使用正态分布检验。
ardb 表示通过SQL获取检验的数据,testconn表示是通过某一个JDBC连接去获取数据。
如果是使用默认的数据连接,可以省略。
20 频数分段为20段。
0.9 置信度为0.9。
二.分布对象的函数说明
函数名 | 函数说明 |
getResult() | 返回分布检验的结果,true表示符合分布,false表示不符合分布 |
getVertexMax(int) | 返回某一分段的最大值 |
getVertexMin(int) | 返回某一分段的最小值 |
getRatio() | 返回置信度 |
getFreq(int) | 返回某一分段的分布数,即有多少数据落分布在该段中 |
getObvCount() | 返回样本数据的总数 |
getCoef1() | 返回分布函数的参数值 二项分布: p 指数分布: lambda 正态分布:mju(均值) 泊松分布:lambda 均匀分布: a |
getCoef2() | 返回分布函数的参数值 正态分布:sigma(标准差) 均匀分布: b |
getDistributionCaption() | 返回分布的名称 |
getConf(double) | 给定一个tau,求出落在均值加(减)tau该区间[mju-tau,mju+tau]的样本数据所占的百分比。 |
getTau(double) | 给定一个数据分布的百分比值,根据均值加(减)tau,就是可以计算出一个样本的区间[mju-tau,mju+tau]。(占多少比例的数据落在该区间)。 |
getStyle() | 得到该分布类型是连续的还是离散的1为连续,0为离散 |
calcDensity(double) | 根据随意的x值计算对应的密度函数的值,如果不符合检验模型,则返回Double.NaN |
calcDistribution(double) | 根据随意的x值计算对应的分布函数的值,如果不符合检验模型,则返回Double.NaN |
getConfidence() | 返回拟合优度的值。 |
三.全局对象说明
就是该对象是属于报表的,当多个表元引用该对象的时候,只在报表中初始化一次,而不是每个表元都会初始化该对象。在报表属性的高级这一栏下面,有全局对象属性,点击该链接可以定义报表的全局对象,每一个全局对象有三个属性:
对象名称:该对象的唯一标识,字母打头的字母或数值的组合,现在没有做合法性判断。
重新计算: 如果该表是个分页的表,当不在首页时,是否重新计算该对象。
对象定义:定义该对象。
2 聚类函数
BI提供了一个表达式函数cluster用于进行聚类分析,该函数实现了上面提到的三种通用聚类方法,使用该函数的调用表达式是cluster(samples, clusterNumber,model),具体说明如下:
cluster函数参数说明
参数 | 含义 | 规格说明 |
samples | 聚类样本观测数据 | 一维或者二维的double数组,如果是一维的则数组长度为聚类样本的个数;为二维数组时,第一维长度为聚类样本个数, 第二维长度为样本的指标个数,并且所有的第二维长度应该相等,如果数据中有缺失值,则在计算是当作0处理 |
clusterNumber | 期望聚类的数目 | 不小2(对于层次聚类方法该数字不小于3)的一个int型数字,该数字不能大于聚类样本个数 |
model(可选参数) | 聚类方法名称 | 该参数是一个字符串,表示选用何种聚类分析方法;目前有四个可供选择的值:'classic'表示选用层次聚类方法, 'kmean'表示选用k-means聚类方法,'quick'和'birch'表示选用快速聚类方法;默认为快速聚类方法 |
cluster函数返回结果对象说明
cluster函数的计算结果是一个聚类结果对象,通过该对象提供的方法,用户可以获取跟聚类相关的各种结果,具体说明见下表:
调用方法 | 结果类型 | 返回结果说明 |
getClusterCenter(int clusterIndex) | double[] | 聚类后序号为clusterIndex的类别的样本中心 |
getClusterCenters() | double[][] | 所有类别聚类中心,结果的的第一维长度为聚类的数目,第二维长度为样本观察指标数目 |
getClusterCenterSampleIndex(int clusterIndex) | int | 聚类后序号为clusterIndex的类别中最靠近样本中心的那个样本的编号 |
getClusterCenterSampleIndexes() | int[] | 离各聚类中心最近的那个样本的序号列表 |
getClusterNumber() | int | 聚类类别数目 |
getClusterSampleCount(int clusterIndex) | int | 聚类后序号为clusterIndex的类别中的样本数目,可能存在某些类别中样本数目为0 |
getClusterSampleCounts() | int[] | 聚类后每个样本中的数目 |
getClusterSampleIndex(int clusterIndex) | int[] | 类别clusterIndex中的样本序号列表 |
getClusterSampleIndexes() | int[][] | 聚类后所有类别中各自的样本序号列表 |
getClusterSamplePercentage(int clusterIndex) | double | 序号为clusterIndex的类别中样本数目所占的比例 |
getClusterSamplePercentages() | double[] | 所有类别样本数目比例 |
getMaxValue(int clusterIndex) | double | 类别clusterIndex中的样本指标最大值,如果样本有多个指标则结果中仅包含第一个指标的最大值 |
getMaxValues() | double[] | 所有类别中样本的指标最大值,如果样本有多个指标则结果中仅包含第一个指标的最大值 |
getMinValue(int clusterIndex) | double | 类别clusterIndex中的样本指标最小值,如果样本有多个指标则结果中仅包含第一个指标的最小值 |
getMinValues() | double[] | 所有类别中样本的指标最小值,如果样本有多个指标则结果中仅包含第一个指标的最小值 |
getSampleClusterIndex(int sampleIndex) | int | 编号为sampleIndex的样本聚类后的类别序号 |
getSampleClusterIndexes() | int[] | 所有样本聚类后的类别序号列表 |
getSampleNumber() | int | 样本数据的数目 |
注:上面各种方法中的参数clusterIndex表示传入的聚类结果的类别编号(该编号的范围为0到期望聚类数目-1),sampleIndex表示传入的原始样本数据的编号;
3 预测函数
BI中和R相关预测的方法有5种,线性回归、对数线性回归、支持向量机、神经网络和时间序列预测方法。其中前四种预测方法是根据一个或多个参考值来预测目标数据的,而时间序列不需要。
R预测类com.sanlink.irpt.oem.tax.predict.R方法说明
方法名 | 参数 | 说明 |
pred | 前4种预测用该函数 | |
predName | 预测方法名,取值为 tax.pred.svm|tax.pred.nnet|tax.pred.lm|tax.pred.lnlm | |
trainData | 参考值的历史数据,必须是二维数组,如:[C3$$] | |
historyData | 历史数据,一维数组,如:B3$$ | |
params | 预测数据的参考值,<#=@gdp#> | |
dataPointTitle | 统计图上数据点的标题,A3$$+'2007年' | |
chartTitle | 统计图标题,如:'支持向量机' | |
arima | 时间序列预测函数 | |
predName | 预测方法名,取值为 tax.pred.arima | |
historyData | 历史数据,一维数组, | |
N | 表示要预测的期数 | |
frequency | 表示要预测的周期数 | |
params | 该参数为空,还没有用到,输入 '' 即可 | |
dataPointTitle | 统计图上数据点的标题,A3$$+'2007年' | |
chartTitle | 统计图标题,如果不需要统计图,上述两个参数都不需要预测 |
pred函数返回的对象说明:
函数名 | 说明 |
getTestPredError(int i) | 获取第i期的测试预测的结果误差,如果那一期没有被测试,返回nan , 可以根据fidx()函数获取浮动出来的序号 |
getAvePredError() | 返回预测误差的平均值 |
getChartInfo() | 返回统计图对象参数,在统计图的图片路径中可以输入 =arima.getChartInfo() |
getValue() | 获取预测的结果值 |
arima返回的对象说明:
函数名 | 说明 |
getTestPredError(int i) | 获取第i期的测试预测的结果误差,如果那一期没有被测试,返回nan , 可以根据fidx()函数获取浮动出来的序号 |
getAvePredError() | 返回预测误差的平均值 |
getChartInfo() | 返回统计图对象参数,在统计图的图片路径中可以输入 =arima.getChartInfo() |
getValue(int i) | 返回第i期的预测值 |
4 钻取函数
1、_z()
函数体:_z(rpt,params)
说明:从某主表链接到一张新表,使某分析表某些指标求精展示。
参数:
rpt:表示钻取到的另一张表其取值可以是报表ID、报表标题、报表代号、报表保存组路径带报表代号
params:传递给链接表的参数,参数用分号分割,当前表计算时所用的参数会缺省的传递,
举例:
javascript:_z('WB_CGYH','@bbq=<#=@bbq#>;@sw=<#=@sw#>')
链接到WB_CGYH表,并将参数 (bbq和)sw传递过去。其中:@bbq为报表期参数,@sw为资金单位;如果主表计算时用到了这两个参数,将会缺省传递链接表中,可以直接将公式写成:javascript:_z('WB_CGYH')
在钻取表中可以直接引用这些参数,如这个例子中可在WB_CGYH表的"报表期属性"中的"数据期条件"填写:bbq()=@bbq来对报表期加以控制,使之继承主表报表期。
2. _zq( )
函数体:_zq(cellname)
说明:本表向下钻取,主要用于多级代码维和通用维的钻取,如是多级代码维将会向下钻取,如是通用维将会按维表设置的钻取路径钻取。
参数:
cellname:表元名
举例:
javascript:_zq('<#=clinf(self(),"name")#>')//#########
3. _zi( )
函数体:_zi(rpt,params,target,width)
说明:将钻取出来的结果表显示在本表的右方或者下方
参数:
rpt:表示钻取表的或者名称或者标题
params:传递给链接表的参数,参数用分号分割,当前表计算时所用的参数会缺省的传递如:
target:表示钻取结果表显示的地方,有两个字符串可选值right和bottom,缺省为right,也可以指定原表的表头表元。
width:表示显示结果表的区域所占据的高度或者是宽度,比如:0.3和30都表示30%,大于100的表示具体的宽度以象素为单位,缺省为0.5 。
isgraphics:表示是显示图还是图表。该函数是和target参数配合起来使用,如果target是本表的表头表元(HHH0),那么就把链接的表或图显示在 target指定的表元中。为true,表示只显示图,默认为false
举例:
javascript:_zi("b0602","@zb=xxb.JE")
//表示钻取的表出现在当前表的右边,占据50%的宽度,
javascript:_zi("zg","@cp=xxx","HHH0")
//表示把代号为zg的表,显示在本表的HHH0表元中
4. _zg( )
函数体:_zg(datas,caption,seriestitle,maintitle,gcell)
说明:表示在本表中显示图,而且图的数据也是来自于本表,出图的时候,不需要重新计算表。
参数:
datas:统计图生成图片所需要的数据;
captions:统计图指标的标题;
seriestitle:系列的标题;
maintitle:统计图标题;
gcell:统计图的源表元,钻取后的统计图,也显示在该表元上,该表元可以不传,不传时,就取默认的本表的第一个统计图表元;
其中:datas、captions、serestitle需要引用宏表达式的写法,比如<#=A2$#>
举例:
javascript:_zg('<#=c2$#>','<#=c1$#>','<#=A2#>',null,'HHH0')
//表示把c2浮动出来的数据显示在统计图表元 'HHH0'上,
//表示把c2浮动出来的数据显示在统计图表元 'HHH0'上,
5. _zmenu( )
函数体:_zmenu(configs)
说明:_zmenu函数会根据参数创建一个菜单并显示出来。
参数:
configs:一个二维数组,每个元素都对应一个菜单项,其组成为:[菜单项的文字,事件处理函数,事件处理函数的参数1,参数2,…]
举例:
_zmenu([["钻取A1", _zq, "A1"],["钻取A3", _zq, "A3"]])
另外:事件处理函数可以是一个字符串,即函数的名字,比如_zmenu([["钻取A1", "_zq","A1"]]
示例图:
file:///C:/Users/esen/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
6._zr( )
函数体:_zr(rpt,drillcell, params, leafrpt, leafparams)
说明:在报表模板的计算结果中,展开维的下级数据,类似对话框olap的展开功能。只需要在表元的链接属性中调用_zr,比如"javascript:_zr()"
参数:
rpt参数:为报表id或者报表名称,类似_zi函数的rpt参数。如果为"",默认为本表自己。
drillcell:为钻取表元。如果为"",则默认为表元自己。
params参数:报表参数。类似_zi函数的报表参数。它还支持几个特殊的参数:
indentcell:缩进表元(实现树形显示的效果)。如果钻取自己,默认是钻取表元自己;如果是显示其它表,默认是第一列的所有表元。值可以是表元名或数字。
数字:表示第几列的所有表元
表元:A2。A2浮动出来的所有表元。
range: 把计算结果的一部分显示在下面。可以是一个区域或者表元名
rect:left.top.right.bottom,比如0,1,2,2。right和bottom可以为-1,表示最右边。rect是结果表中的这个区域内的。
表元:A2,所有A2浮动出来的表元。
leafrpt和leafparams:钻取到叶子节点时,再往下钻就没有意义了。指定着两个参数,可以在钻到底时转到另外的报表,根据这两个参数为叶子表元自动生成新的链接_z(leafrpt, leafparams)。例子:
javascript:_zr() 钻取本表。
javascript:_zr("明细表", "@qx=200801") 钻到明细报表,计算时使用参数"@qx"。
javascript:_zr("明细表", "@qx=200801;range=A2") 钻到明细报表,只显示表元A2代表的浮动区域。
javascript:_zr(null, null, null, "明细表2", "@qx=200801;") 钻到叶子节点时跳转到明细表2,@qx是计算明细表2的参数。
举例:
javascript:_zr() 钻取本表。
javascript:_zr("明细表", "@qx=200801") 钻到明细报表,计算时使用参数"@qx"。
javascript:_zr("明细表", "@qx=200801;range=A2") 钻到明细报表,只显示表元A2代表的浮动区域。
javascript:_zr(null, null, null,"明细表2", "@qx=200801;") 钻到叶子节点时跳转到明细表2,@qx是计算明细表2的参数。
5 其它函数定义:
根据参数值进行报表指标数据过滤。此函数主要用在定义报表时,根据报表参数来定义过滤条件时,简化过滤条件的书写。
mkfilter("过滤指标1=报表参数1&过滤指标2=报表参数2...")
参数:
本函数的参数由多个报表参数与过滤指标组成。写法为:报表参数1=过滤指标1&报表参数2=过滤指标2...
示例:
(1)、mkfilter("XXB.HY_DM= @a")
输入:@a=A0101|B0101,则返回:XXB.HY_DMIN ['A0101','B0101']
说明:这个例子中xxb.hy_dm是代码维,输入的参数是两个条件,并且是代码中的代码,则根据输入的参数值进行过滤
输入:@a=A0101|B0101,则返回:XXB.HY_DMIN ['A0101','B0101']
说明:这个例子中xxb.hy_dm是代码维,输入的参数是两个条件,并且是代码中的代码,则根据输入的参数值进行过滤
(2)、mkfilter("dim(xxb.c4,'nsrxx')=@a")
输入:@a=abc,则返回:dim(xxb.c4,'nsrxx')='abc'
输入:@a=abc,则返回:dim(xxb.c4,'nsrxx')='abc'
(3)、mkfilter("dim(xxb.c4,'nsrxx')like @a")
输入:@a=abc,则返回:dim(xxb.c4,'nsrxx')like 'abc%'
说明:这个例子中根据输入的参数abc进行模糊匹配。
输入:@a=abc,则返回:dim(xxb.c4,'nsrxx')like 'abc%'
说明:这个例子中根据输入的参数abc进行模糊匹配。
(4)、mkfilter("dim(xxb.c4,'nsrxx')=@a")
输入:@a=abc|def|gti,则返回:dim(xxb.c4,'nsrxx')in ['abc','def','gti']
说明:这个例子中输入的参数件三个条件。
输入:@a=abc|def|gti,则返回:dim(xxb.c4,'nsrxx')in ['abc','def','gti']
说明:这个例子中输入的参数件三个条件。
(5)、mkfilter("left(dim(xxb.c4,'nsrxx'))=@a")
输入:@a=abc,则返回:left(dim(xxb.c4,'nsrxx'))='abc'
输入:@a=abc,则返回:left(dim(xxb.c4,'nsrxx'))='abc'
(6)、mkfilter(xxb.hy_dm=@a)
输入:@a=A,则返回:xxb.hy_dm like 'A'
说明:这个例子中xxb.hy_dm是代码维,根据输入的参数值A进行模糊匹配。
输入:@a=A,则返回:xxb.hy_dm like 'A'
说明:这个例子中xxb.hy_dm是代码维,根据输入的参数值A进行模糊匹配。
(7)、mkfilter(xxb.hy_dm=@a)
输入:@a=A0101,则返回:xxb.hy_dm ='A0101'
说明:这个例子中xxb.hy_dm是代码维,根据输入的参数值A0101进行精确匹配。
输入:@a=A0101,则返回:xxb.hy_dm ='A0101'
说明:这个例子中xxb.hy_dm是代码维,根据输入的参数值A0101进行精确匹配。
(8)、mkfilter(xxb.hy_dm=@a)
输入:@a=A|B,则返回:left(xxb.hy_dm,1)in ['A','B']
说明:这个例子中xxb.hy_dm是代码维,输入的参数是两个条件,并且是代码中的左边一们,则根据输入参数值的左边一位进行过滤。
输入:@a=A|B,则返回:left(xxb.hy_dm,1)in ['A','B']
说明:这个例子中xxb.hy_dm是代码维,输入的参数是两个条件,并且是代码中的左边一们,则根据输入参数值的左边一位进行过滤。
(9)、mkfilter(xxb.hy_dm=@a)
输入:@a=A,则返回:xxb.hy_dm like 'A%'
说明:同(6)
输入:@a=A,则返回:xxb.hy_dm like 'A%'
说明:同(6)
详细说明:
1、支持在输入参数时,输入逻辑表达式 如:“A>b & C<D”
2、支持在MKFILTER中有逻辑表达式
2、支持在MKFILTER中有逻辑表达式
例如@kxlb为空 @je 为空@je1 为3 那么
mkfilter("(xxb.c5=@kxlb&xxb.c4=@je)|(xxb.c3=xxx)")
返回:xxb.c5=20 or xxb.c3=3
3、进行模糊条件查询时,输入的条件有限制,即输入方式应该是“ABC%”,目前不支持“%ABC%” 和“AB%C”的格式
4、在输入参数时,如果一个参数输入多个条件时,需要在输入框中加“=”,如:“=AB|CD”
2 OD定义:Od(s1,s2)或Od(d,s2)
提供日期操作功能的函数,它对日期串进行指定格式的处理后,返回结果为日期字符串。
参数:
1.od(源时间数据字符串,操作符) eg:od('2006','y=2005')
年:操作符为'y' ,标准格式为xxxx(四位),eg:2006 表示2006年
半年:操作符为'hy',标准格式为x (一位),eg: 20061 表示2006年上半年
季度:操作符为'q',标准格式为x(一位),eg:20061 表示2006年第1季度
月:操作符为'm' ,标准格式为xx(两位),eg:200601 表示2006年1月
旬:操作符为't',标准格式为x(一位),eg:2006011 表示2006年1月上旬
日:操作符为'd',标准格式为xx(两位) ,eg:20060101 表示2006年1月1日
返回结果为 年年年年月月日日 形式的字符串
2.od(源时间数据日期型,操作符) eg:od(#20060101#,'y=2005')
年:操作符为'y' ,标准格式为#xxxxxxxx#,eg:#20060101# 表示2006年1月1日
月:操作符为'm',标准格式为#xxxxxxxx#,eg:#20060101# 表示2006年1月1日
日:操作符为'd', 标准格式为#xxxxxxxx#,eg:#20060101# 表示2006年1月1日
返回结果为 年年年年-月月-日日 形式的字符串
以上都支持多操作符的运算,用';'隔开即可
3 DIM定义:
通常用于维,指标,条件中,表示维在数据库中的字段;这里的维包括通用维,多级维,单级维,但必须都要有对应的数据库表;对于COD文件型维,支持取级次,不支持取属性值;
参数:
1.dim(p1,p2)
参数p1: 表示维表元,可以是表元名,表达式,也可以是维名称;
比如:xxb.hy_dm, "行业代码",id()
参数p2: 表示维的级次,或者是维的属性,还可以是维表的字段名;
比如:0,1,2..., "行业门类","行业大类","hy_ml"
这里 0 表示最大级次;
例:dim(xxb.hy_dm,0)
= dim(xxb.hy_dm,"行业门类")
= dim(xxb.hy_dm,"hy_ml")
= dim("行业代码",0)
= dim("行业代码","行业门类")
= dim("行业代码","hy_ml")
dim(id(),"nsrmc")
注:
第二个参数如果是数字,则第一个参数对应的维可以是文件型维;
例: 如果xxb.hy_dm是文件型维:
dim(xxb.hy_dm,0) ,取的是第0级的前缀;
dim(xxb.hy_dm,"行业门类") 则不支持;
2.dim(p1,p2,p3)
参数p1,p2同上;
参数p3: 是时间参数,用于缓慢增长维,表示截至到维表p1指定参数p3的p2的值;
例:
dim(id(),"nsrmc", "200501--")就是取id()对应维表截止到200501月份的nsrmc字段的值;
注:
如果第一个参数是个常量,比如要取行业代码"A0100"对应的名称,则需要用到 diminf 函数了;
4 DIMINF定义:
获得某维的值的信息。DIMINF(C1 C2),或DIMINF(C1 C2 I),或DIMINF(C1 C2 C3)。
参数:
C1:第一个参数,表示维的名字,如 HY_DM, 表示“行业代码”等;特殊情况是:“dw” 表示单位级次代码;
C2:第二个参数,表示代码,如 A0000;
C3,I:第三个参数可以是字符或者整型数,也可以没有第三个参数。如果没有第三个参数,那么直接返回代码对应的文字信息;如果有第三个参数且是整型,则返回第I个代码对应的属性;
如果有第三个参数且是字符串,则当字符串是:$PREFIX:则返回此代码所在级次的前缀字符串;如级次为1-2-2的行业代码中,A0000的前缀字符串为A。
如果有第三个参数且是字符串,则当字符串是:$PREFIX:则返回此代码所在级次的前缀字符串;如级次为1-2-2的行业代码中,A0000的前缀字符串为A。
$ISLEAF:是否是叶子节点,此时函数的返回值为T或F,也为字符型。
$LEVEL:返回第二个参数表示的代码在维中的级次,此时函数的返回值也为字符型其他情况返回相应属性对应的文字信息
示例:
返回维的值的信息
DIMINF('HY_DM',A0000),返回‘农、林、牧、渔业’
在维'HY_DM'中,A0000对应的文字信息为‘农、林、牧、渔业’,故返回‘农、林、牧、渔业’
级次为1-2-2的行业代码维hy_dm,diminf('hy_dm','A0000','$PREFIX')='A'
定义:ARSEL(R,L)
返回指定数组中符合条件的项目,形成的一个新数组
参数:
R:指定的数组
L:条件表达式
示例:
返回指定数组中符合条件的项目形成的一个新数组
arsel(a3$,@>0)
返回a3$中大于0的项目
返回a3$中大于0的项目
定义:ARSORT(R,L)
对数组进行排序,返回排序后的数组
参数:
R:需要进行排序的数组
L:表示是升序还是降序,true表示按升序,false表示按降序,默认为升序
示例:
返回排序后的数组
ARSORT(a1:a5,b1,b3)
定义:ARLEN(R)
返回数组中项目的个数
参数:
R:指定的数组
示例:
返回数组中项目的个数,返回值为整数
ARLEN(a1:a5,b1,b3)=7
定义:CALCINF(C)
返回计算分析表时的相关信息,如计算用的跟节点,计算时的过滤条件,计算时的日志信息等
参数:
C:字符串
示例:
返回计算分析表时的相关信息
calcinf('rootid') 返回计算时的单位级次代码
calcinf('rootname') 返回计算时的单位级次名称,如西城区,东城区
calcinf('log') 返回计算的输出log
calcinf('sql') 返回计算执行的sql
calcinf('duration') 返回计算执行了多久,毫秒为单位的一个整形
calcinf('filter') 返回具体的过滤条件
calcinf('bbq') 返回具体的报表期
calcinf('calcparams') 返回计算参数,行如:a=1;b=2;c=3
calcinf('calcparams.@a') 返回某个计算参数@a的值
calcinf('calcparams.@a,txt') 返回某个枚举参数@a的显示值
calcinf('calcparams.@a,id') 返回某个枚举参数@a的实际值
calcinf('totalcount') 返回总共有多少条数据
calcinf('pagesize') 返回每页多少条数据
calcinf('startindex') 返回本页起始行
calcinf('rootname') 返回计算时的单位级次名称,如西城区,东城区
calcinf('log') 返回计算的输出log
calcinf('sql') 返回计算执行的sql
calcinf('duration') 返回计算执行了多久,毫秒为单位的一个整形
calcinf('filter') 返回具体的过滤条件
calcinf('bbq') 返回具体的报表期
calcinf('calcparams') 返回计算参数,行如:a=1;b=2;c=3
calcinf('calcparams.@a') 返回某个计算参数@a的值
calcinf('calcparams.@a,txt') 返回某个枚举参数@a的显示值
calcinf('calcparams.@a,id') 返回某个枚举参数@a的实际值
calcinf('totalcount') 返回总共有多少条数据
calcinf('pagesize') 返回每页多少条数据
calcinf('startindex') 返回本页起始行
定义:CLVAL() 或者CLVAL(I1,I2) 或者 CLVAL(*,I1,I2)
返回指定行列号的表元的值
CLVAL()表示不指定行列号,则与SELF函数一样,返回公式所在表元的值
CLVAL(I1,I2)指定了行列号,则返回报表中坐标为(I1, I2)的表元的值
CLVAL(*,I1,I2)的第一个参数为一个表元,I1和I2为行列号偏移,
则返回相对参数表元偏移(I1,I2)的表元的值
CLVAL()表示不指定行列号,则与SELF函数一样,返回公式所在表元的值
CLVAL(I1,I2)指定了行列号,则返回报表中坐标为(I1, I2)的表元的值
CLVAL(*,I1,I2)的第一个参数为一个表元,I1和I2为行列号偏移,
则返回相对参数表元偏移(I1,I2)的表元的值
参数:
*:表示任一表元
I1:行号,从0开始。可以为负数,比如-1表示表中最大的行数;-2为最大行数减1
I2:列号从0开始。可以为负数,比如-1表示表中最大的列数;-2为最大列数减1
示例:
返回指定行列号的表元的值,返回值的类型由表元类型决定
clval(),返回当前公式表元的值 clval(0,0),返回表元A1的值
clval(A1,0,1),返回表元B1的值
下面的例子中,函数只有两个参数,且均为负数。假设报表有4行5列,则
clval(-1,-1),返回表中行、列号最大值所组成的表元E4的值
clval(-2,-2),返回D3的值
clval(-3,-3),返回C2的值
clval(A1,0,1),返回表元B1的值
下面的例子中,函数只有两个参数,且均为负数。假设报表有4行5列,则
clval(-1,-1),返回表中行、列号最大值所组成的表元E4的值
clval(-2,-2),返回D3的值
clval(-3,-3),返回C2的值
javascript:_zq('<#=clinf(self(),"name")#>')//#########
定义:clinf(*, C)
返回表元的属性的值。
参数:
*:表元任意表元
C:属性名。现在支持的属性有:caption、name、fullname、exp、@id、@txt、filter
示例:
以浮动表元a1为例,它的表达式为“sbxx.hy_dm”。在计算结果中,它有三个值:001--“工业”、002--“农业”、003--“第三产业”
caption:浮动表元内的维的名字。clinf(a1,"caption")返回“行业代码”
注:如果第一个参数为函数,则返回函数的名字,现在支持的函数有bbq()、id()
例如:clinf(bbq(),"caption")返回“报表期”
clinf(id(),"caption")返回“报表户”
exp:表元的表达式。Clinf(a1,"exp")返回“sbxx.hy_dm”
name:表元名。Clinf(a1,"name")返回“A1”
fullname:完整表元名。Clinf(a1,"fullname")返回“表名.A1”
@id:浮动表元的维的id。Clinf(a1,"@id")返回“001”。(另外的两个返回002和003)
@txt:浮动表元的维的显示值。Clinf(a1,"@txt")返回"工业"。(另外的两个返回“农业”和“第三产业”)
filter:是取某个表元的过滤条件,此参数常用在钻取链接,如javascript:_z("B1","@filter=<#=clinf('B'+asint(row()+1),'filter')#>"),当钻取时链接的表元不固定,或者过滤条件比较复杂时,用到此参数
注:如果第一个参数为函数,则返回函数的名字,现在支持的函数有bbq()、id()
例如:clinf(bbq(),"caption")返回“报表期”
clinf(id(),"caption")返回“报表户”
exp:表元的表达式。Clinf(a1,"exp")返回“sbxx.hy_dm”
name:表元名。Clinf(a1,"name")返回“A1”
fullname:完整表元名。Clinf(a1,"fullname")返回“表名.A1”
@id:浮动表元的维的id。Clinf(a1,"@id")返回“001”。(另外的两个返回002和003)
@txt:浮动表元的维的显示值。Clinf(a1,"@txt")返回"工业"。(另外的两个返回“农业”和“第三产业”)
filter:是取某个表元的过滤条件,此参数常用在钻取链接,如javascript:_z("B1","@filter=<#=clinf('B'+asint(row()+1),'filter')#>"),当钻取时链接的表元不固定,或者过滤条件比较复杂时,用到此参数
定义:COL(),或COL(*)
返回指定表元的列号,从0开始,如col(b2)返回1,如果不传递参数,则返回定义公式所在表元的列号
参数:
*:任意类型
示例:
返回指定表元的列号,返回值为整数
COL(b3)=1
定义:ID( )
返回单位代码
参数:
无
示例:
返回单位代码
ID( )="420100"
定义:Predict(historyData, modelName, extraParameter)
根据历史记录值和选定的预测模型,返回预测值。
参数:
historyData :第一个参数:预测事件的历史纪录值,为数值型
modelName:第二个参数:用来预测的模型名称,为字符型
在Predict函数中,可供选择的模型有:
模型名称 | 说明 |
PolyOne | 一次多项式预测模型 |
PolyTwo | 二次多项式预测模型 |
PolyThree | 三次多项式预测模型 |
PolyFour | 四次多项式预测模型 |
Expo | 指数预测模型 |
MoveAve | 平均移动预测模型 |
OnceExp | 一次指数预测模型 |
TwiceExp | 二次指数预测模型 |
WinterSeason | 温特线性季节指数平滑预测模型 |
BoxJenkins | 博克斯-詹金斯预测模型 |
Gray | 灰色预测模型 |
extraParameter :第三个参数:当使用某些模型时,用来输入额外参数,为字符型
模型名称 | 参数类型及参数名 | 含义 | 说明 |
OnceExp | int maxM | 精确度 | (有待实现) |
TwiceExp | int maxM | 精确度 | (有待实现) |
int m | 超期步长 | (有待实现) | |
WinterSeason | int seasonLength | 季节(周期)长度 | |
int m | 超期步长 | (有待实现) | |
BoxJenkins | int maxM | 精确度 | (有待实现) |
int times | 最大迭代次数 | (有待实现) | |
double epsilon | 精确度 | (有待实现) |
示例:
根据历史记录值和选定的预测模型,预测得到下一期的结果。
predict(B2$,'PolyOne')表示根据浮动分析表中B2浮动产生的数据,用“PolyOne”来预测结果
定义:REPLACEREGEX(C1,C2,C3,L)
替换某字符串中的串
参数:
C1:第一个参数:需要被替换的字符串
C1:第一个参数:第二个参数:需要被替换的第一个参数中的子串
C1:第一个参数:第三个参数:用这个参数来替换第二个参数表示的子串。如果没有这个参数,默认用空串""来替换。
L:第四个参数:为true时,替换所有符合的子串;
为false时,只替换第一个符合的子串。默认为true。
为false时,只替换第一个符合的子串。默认为true。
示例:
将字符串中某一子串替换为另一个字符串,返回替换后的字符串。
replaceregex('23123abcd23123','23123','N',true)返回NabcdN
replaceregex('23123abcd23123','23123','N',false) 返回Nabcd23123
replaceregex('23123abcd23123','23123') 返回abcd
replaceregex('23123abcd23123','23123','N',false) 返回Nabcd23123
replaceregex('23123abcd23123','23123') 返回abcd
定义:ROW()或ROW(*)
返回指定表元的行号,从0开始,如col(b2)返回1,
如果参数为空,则返回定义公式所在表元的行号
如果参数为空,则返回定义公式所在表元的行号
参数:
*:任意类型
示例:
返回指定表元的行号,返回值为整数
ROW(b3)=2
定义:SEL1(C1,C2),或SEL1(C1,I),或SEL1(C1)
执行一个sql语句,并将第一行第一列的值当字符串返回,如果没有数据返回null
参数:
C1:可以是一个sql语句,也可以是一个sql数据源的名字。
C2:如果第一个参数是sql语句的话,那么第二个参数可以是数据库连接池的名字;
如果不指定第二个参数,那么缺省的使用当前任务的缺省连接池。
如果第一个参数是sql数据源的名字的话,那么第二个参数可以是一个字段名或者字段序号,表示返回sql数据源的结果的那列的值
如果不指定第二个参数,那么缺省的使用当前任务的缺省连接池。
如果第一个参数是sql数据源的名字的话,那么第二个参数可以是一个字段名或者字段序号,表示返回sql数据源的结果的那列的值
示例:
返回sql语句的第一行第一列的值,或者返回某数据源的某一字段的值
sel1('rs1'),表示取rs1源的第一行的第一列的值SEL1("select * from xxb", 1), 返回该数据源的第一行第一列的值SEL1("rs2", "mc"), 返回rs2的mc字段的值
定义:SELF()
返回当前表元的值
参数:
无
示例:
返回当前表元的值,返回值类型由表元类型决定
SELF()
定义:UPID()
返回当前单位的上级代码,如果不成功,则返回空。
参数:
无
示例:
返回当前单位的上级代码
UPID()="420000"
定义:_rk(zb1,"asc|desc",0|1|2)
返回指标在维中的排名,对于相同排名,根据参数,可以选择不同的处理方式。
参数:
zb1:需要进行排名的指标
asc|desc:表示对指标是进行升序还是降序排名,asc表示升序,desc表示降序
0|1|2:对指标排名时,相同的排名时的处理方式,具体用法请看举例
示例:
返回指标在维中的排名
rk(zb1,"asc",0):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 24 ,即相同的名次并列,没有第3名。
_rk(zb1,"asc",1):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 2 3 ,即相同的名次并列,但有第3名。
_rk(zb1,"asc",2):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 3 4 ,即忽略相同的名次。
如果是降序,则处理方法与升序相似:
_rk(zb1,"desc",0):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:4 2 2 1 。
_rk(zb1,"asc",1):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 2 3 ,即相同的名次并列,但有第3名。
_rk(zb1,"asc",2):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 3 4 ,即忽略相同的名次。
如果是降序,则处理方法与升序相似:
_rk(zb1,"desc",0):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:4 2 2 1 。
定义:_ZF(num)
对某一指标计算求出"(本期-去年同期)/去年同期"的值,即同比增幅,返回值为数值型。此函数只能用在报表期主题的表中,如年报、月报、季报等。
参数:
num:需要计算同比增幅的指标,为主题表中的指标。
示例:
求主题表中某一指标的同比增幅
_ZF(T03_1.C3),表示计算指标T03_1.C3的同比±%
定义:_HBZF(num)
对某一指标计算求出"(本期-上期)/上期"的值,即环比增幅,返回值为数值型。此函数只能用在报表期主题的表中,如年报、月报、季报等
参数:
num:需要计算环比增幅的指标,为主题表中的指标。
示例:
求主题表中某一指标的环比增幅
_HBZF(T03_1.C3),表示计算指标T03_1.C3的环比增幅
定义:_ZJE(num)
对某一指标计算求出"本期-去年同期"的值,即同比增减额,返回值为数值型。此函数只能用在报表期主题的表中,如年报、月报、季报等。
参数:
num:需要计算同比增减额的指标,为主题表中的指标。
示例:
求主题表中某一指标的同比增减额
_ZJE(T03_1.C3),表示计算指标T03_1.C3的同比增减额
定义:_HBZJE(num)
对某一指标计算求出"本期-上期"的值,即环比增减额,返回值为数值型。此函数只能用在报表期主题的表中,如年报、月报、季报等。
参数:
num:需要计算环比增减额的指标,为主题表中的指标。
示例:
求主题表中某一指标的环比增减额
_HBZJE(T03_1.C3),表示计算指标T03_1.C3的环比增减额
定义:_NCZJE(num)
对某一指标计算求出"(本期-年初)"的值,即年初增减额,返回值为数值型;这里年初指的是本期对应该年的第一期的值,例:月报就是该年第一月的值。此函数只能用在报表期主题的表中,如年报、月报、季报等。
参数:
num:需要计算年初增减额的指标,为主题表中的指标。
示例:
求主题表中某一指标的年初增减额
_NCZJE(T03_1.C3),表示计算指标T03_1.C3的年初增减额
定义:_NCZF(num)
对某一指标计算求出"(本期-年初)/年初"的值,即年初增幅,返回值为数值型;这里年初指的是本期对应该年的第一期的值,例:月报就是该年第一月的值。此函数只能用在报表期主题的表中,如年报、月报、季报等。
参数:
num:需要计算年初增幅的指标,为主题表中的指标。
示例:
求主题表中某一指标的年初增幅
_NCZF(T03_1.C3),表示计算指标T03_1.C3的年初增幅
6 算子1 _S定义:_S(zb1)
对参数zb1求和
参数:
Zb1:为主题表数据库中的某一字段,整型或浮点型数值。
示例:
对主题表数据库中某一字段的所有记录求和;返回值为数值。
2 _A定义:_A(zb1)
求指定参数的平均数
参数:
Zb1:为主题表数据库中的某一字段,整型或浮点型数值。
示例:
求数据库中某一字段所有记录的平均数;返回值为数值。如果zb为null,则不参与统计。若要统计null,则此函数应写作_S(zb)/_N(*)。对主题表数据库中某一字段的所有记录求和;返回值为数值。
定义:_N(zb,true) 或者_N(zb,false),_N(zb)
求所有参数包含的元素的个数,当一个参数为数组类型时,该参数包含的元素个数为数组的长度。即计数。
参数:
Zb1:为主题表数据库中的某一字段,整型或浮点型数值。
true(false): 如果第2个参数为true,表示distinct,即去掉重复的记录;如果为false,表示忽略重复的记录;如果第2个参数为空,默认为false
示例:
求数据库中某一字段的记录计数;返回值为整数。
_N(A1,A2,A3)=3;
假设B1表元浮动出10个表元,则_N(A1,A2,A3,B1$)=13
4 _MAX假设B1表元浮动出10个表元,则_N(A1,A2,A3,B1$)=13
定义:_MAX(zb)
求一组参数中的最大值
参数:
Zb: 为主题表数据库中的某一字段,整型或浮点型数值。
示例:
求主题表数据库中的某一字段在所有记录中的最大值
5 _MIN定义:_MIN(zb)
求一组参数中的最小值
参数:
Zb: 为主题表数据库中的某一字段,整型或浮点型数值。
示例:
求主题表数据库中的某一字段在所有记录中的最小值