-
-
15253170099 数据达人Lv4
发表于2020-8-31 09:41
悬赏1
已解决
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 函数了;
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。
$ISLEAF:是否是叶子节点,此时函数的返回值为T或F,也为字符型。
$LEVEL:返回第二个参数表示的代码在维中的级次,此时函数的返回值也为字符型其他情况返回相应属性对应的文字信息
示例:
返回维的值的信息
DIMINF('HY_DM',A0000),返回‘农、林、牧、渔业’
在维'HY_DM'中,A0000对应的文字信息为‘农、林、牧、渔业’,故返回‘农、林、牧、渔业’
级次为1-2-2的行业代码维hy_dm,diminf('hy_dm','A0000','$PREFIX')='A'
mkfilter 过滤函数
【描述】此函数主要用在根据报表参数来定义过滤条件时,简化过滤条件的书写。
【写法】
<#=mkfilter("过滤指标1=报表参数1&过滤指标2=报表参数2...") #>
注意:1.要加宏<#=#>
2.括号中的过滤条件要用引号
【举例】
报表参数:报表期(@bbq)、注册类型(@zclx)
主题表字段:报表期(设置了数据期)、注册类型(XXB.E4)
过滤条件:
<#=mkfilter(“dim(XXB.E4)=@zclx and bbq()=@bbq”)#>
1个回答
dim和diminf函数介绍
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 函数了;
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。
$ISLEAF:是否是叶子节点,此时函数的返回值为T或F,也为字符型。
$LEVEL:返回第二个参数表示的代码在维中的级次,此时函数的返回值也为字符型其他情况返回相应属性对应的文字信息
示例:
返回维的值的信息
DIMINF('HY_DM',A0000),返回‘农、林、牧、渔业’
在维'HY_DM'中,A0000对应的文字信息为‘农、林、牧、渔业’,故返回‘农、林、牧、渔业’
级次为1-2-2的行业代码维hy_dm,diminf('hy_dm','A0000','$PREFIX')='A'
mkfilter 过滤函数
【描述】此函数主要用在根据报表参数来定义过滤条件时,简化过滤条件的书写。
【写法】
<#=mkfilter("过滤指标1=报表参数1&过滤指标2=报表参数2...") #>
注意:1.要加宏<#=#>
2.括号中的过滤条件要用引号
【举例】
报表参数:报表期(@bbq)、注册类型(@zclx)
主题表字段:报表期(设置了数据期)、注册类型(XXB.E4)
过滤条件:
<#=mkfilter(“dim(XXB.E4)=@zclx and bbq()=@bbq”)#>