轻松掌握BIReport钻取函数.docx
- 文档编号:976812
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:15
- 大小:194.54KB
轻松掌握BIReport钻取函数.docx
《轻松掌握BIReport钻取函数.docx》由会员分享,可在线阅读,更多相关《轻松掌握BIReport钻取函数.docx(15页珍藏版)》请在冰点文库上搜索。
轻松掌握BIReport钻取函数
轻松掌握钻取函数
——作者:
李洁
1、概述
初学BI者看到“钻取”二字往往会觉得不寒而栗,因为他高深莫测得甚称BI中的“一阳指”,何时该使,使时的方向感问题总是让人琢磨不透。
那么此文将送给大家一个属于钻取的“坐标”和“坐标系”。
2、what
什么是钻取呢?
改变分析表中维的层次,变换分析的粒度。
说白了就是分析表求明细。
在BI中可以同一个角度看、另一个角度看或是选择喜欢的角度看?
怎么样高深吧,难以琢磨吧?
3、why
为什么要实现钻取呢?
这时候我们要站在用户的角度来看钻取:
通过钻取的功能,使用户对数据能更深入了解,更容易发现问题,做出正确的决策。
4、where
在哪去找钻取功能?
NO,NO,NO,它并不是一个功能,它是写在链接框里面的javascript语句,那么链接在哪里呢?
链接框遍地都是,比如:
表元链接、统计图链接、图文框链接……,当然他是有规律存在的,因为他们都在各自的“属性”中。
5、how
那么我们该如何写呢?
我们知道它是一个java语句,所以有一定的格式:
Javscript:
钻取函数
6、BI@Report的钻取
表现形式
函数
函数体
说明
本表钻取
_zq
_zq()
本表元向下钻取,主要用于多级代码维和通用维的钻取,如是多级代码维将会根据维级次层层钻取,如是通用维将会按维表设置的钻取路径钻取。
_zr
_zr(rpt,drillcell,params,leafrpt,leafparams)
在报表模板的计算结果中,展开维的下级数据。
drillcell:
为钻取表元,如为""表示表元自己。
leafrpt:
当钻取到叶子节点后转向到其他的报表
leafparams:
钻取到叶子节点表要传递的参数
类似olap的展开功能只需要在表元的链接属性中直接使用javascript:
_zr()
钻取他表
_z
_z(rpt,params,target,dontshowdlg)
从某主表链接到一张新表
_zi
_zi(rpt,params,target,width)
将钻取出来的结果表显示在本表的右方或者下方
刷新本表统计图
_zg
_zg(datas,caption,seriestitle,maintitle,gcell)
直接刷新本表中的统计图,不需要重新计算表。
datas:
统计图生成图片所需要的数据
captions:
统计图指标的标题
seriestitle:
系列的标题
maintitle:
统计图标题
gcell:
统计图的源表元,钻取后的统计图,也显示在该表元上,该表元可以不传,不传时,就取默认的本表的第一个统计图表元
带菜单的钻取
_zm
_zmenu([['菜单名',func,p1,p2,..],[]])
亦称:
_zmenu
可根据参数创建一个菜单并显示出来
一个二维数组,每个元素都对应一个菜单项,其组成为:
_zmenu([[菜单项的文字,事件处理函数,事件处理函数的参数1,参数2],[]……])
7、钻取的参数
在此,请以上钻去函数体中较为通用的参数作一下自我介绍,大家对他们有个印象即可,记不住也没关系,我们在使用时可以随时查找并对号入座:
参数
用法
例
rpt
(我通常表示钻取的目的表)
目的表的代号,名称,id等都可以
B1
B1表
Params
(我起桥梁作用,钻取与被钻取表之间的过滤条件由我来传递)
目的表要使用的参数名=传过去的值,参数对之间用分号分隔
@dq=<#=A2#>
A2表元对应的文字赋给参数@dq
在钻取函数中设置的参数,一般作为钻取表的过滤条件
Target
(钻取目的表的显示方位我掌控)
钻取表显示的方位
适用于_zi的有:
right(_zi默认):
显示在右侧
bottom:
显示在下侧
适用于_z的有:
Self(_z默认):
显示在本表中
Blank:
弹出一个的新窗口来显示
表元名:
显示在本表的某个表元中,一般情况下为一个表头表元
Dontshowdlg
(我知道钻取处理时间及计算效率)
不显示计算等待对话框
false(默认):
显示
true:
不显示
Width
(钻取目的表的“高矮胖瘦”由我说了算)
表示显示钻取表的区域所占据的高度或者是宽度
0.3和30都表示30%,默认为0.5
大于100的表示具体的宽度以象素为单位
如果达人们有兴趣将所有钻取函数一一试过,便知咱们可以用_zq()、_zr()函数从同一个角度来看数据,用_z()、_zi()等函数另一个角度看数据,选择喜欢的角度来看则用_zm()。
8、值得一提
A:
默认情况下,以html方式(非插件)显示的报表,在进行每一种钻取的时候都可以预先在IE的左下角看见钻取传递的路径和参数,便于我们进行正确性检查,如下图所示:
B:
钻取表如想要继承被钻取表元中所有过滤条件,可以在钻取函数中不用设置过滤参数,直接在钻取表右下角的报表过滤条件中写公式<#=@zqfilter#>,此过滤条件意思是继承钻取表元具有的所有过滤条件(包括:
表元过滤条件、所属维的过滤条件、上级维表元的过滤条件(如有多个浮动)、表的过滤条件)
[素材]
wiki地址:
钻取函数和参数说明:
https:
//58.49.52.114/wiki/pages/viewpage.action?
pageId=19038231
钻取过滤条件等高级主题:
https:
//58.49.52.114/wiki/pages/viewpage.action?
pageId=45842440
函数说明:
参考报表:
http:
//192.168.1.200:
8080/bi2.1/?
id=study&pw=study中的【仪表盘和钻取】
目前BI@Report系统所支持的钻取函数分别有:
_z、_zi、_zq、_zg,目的都是为了对分析表某些指标求明细,这些函数为脚本函数,要配合javascript脚本语言写在表元链接属性中来使用,下面分别对这些函数进行说明和列举。
1、_z()
函数体:
_z(rpt,params)
*说明:
*从某主表链接到一张新表,使某分析表某些指标求精展示。
参数:
rpt:
表示钻取到的另一张表
其取值可以是报表ID、报表标题、报表代号、报表保存组路径带报表代号
例如:
CIUZZ6BLMSUJLUFISUY2K45U37IE71VU //报表id
总资产排名 //报表的标题
ZZCPM //报表代号
行业主要指标排名\ZZCPM //组路径带报表代号其中组的分割符号可以是/或者是\
params:
传递给链接表的参数,参数用分号分割,当前表计算时所用的参数会缺省的传递,
如:
@zb1=b1.c39;@mc=总资产 //表示将b1.c39传递给@zb1,将"总资产"传递给@mc
举例:
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:
表元名
如:
A1,A2......<#=clinf(self(),'name')#> //表示返回当前表元的表元名
举例:
javascript:
_zq('<#=clinf(self(),"name")#>') //对浮动表元自己下钻
用_zq()函数通过与报表脚本的结合使用,可以实现先下钻到维的某指定级次后,再链接到其他表,用法如下:
函数体:
_zq(level,cellname,filter)
参数:
level:
维代码的级次,0表示第一级如:
<#=diminf('swjg',clinf(A2,'@id'),'$LEVEL')#> //将返回当前id对应'swjg'维表的级次
cellname:
表元名
如:
A1,A2......<#=clinf(self(),'name')#> //表示返回当前表元的表元名
filter:
过滤条件,一般为传递给链接到其他表的参数,参数用分号分割,当前表计算时所用的参数会缺省的传递如:
@zb1=b1.c39;@mc=总资产 //表示将b1.c39传递给@zb1,将"总资产"传递给@mc
@zqswjg=<#=clinf(A2,'@id')#> //表示返回浮动表元A2的id
举例:
报表脚本:
functionzq(level,cellname,filter)
{if(level>=4){ //当级次大于或等于第4次时
_z('ZQ3.9.5',filter); //链接到ZQ3.9.5表
}
else
{ _zq(cellname); //否则向下钻取
}
}
A2表元的链接表达式:
javascript:
zq(<#=diminf('swjg',clinf(A2,'@id'),'$LEVEL')#>,'<#=clinf(self(),'name')#>','@zqswjg=<#=clinf(A2,'@id')#>')
//结合上面的脚本语句:
根据id先向下钻取,钻到id的第四级后链接到表3.9.5
注意:
swjg为多维代码维或者通用维的钻取路径中有钻取属性
3._zi()
函数体:
_zi(rpt,params,target,width)
说明:
将钻取出来的结果表显示在本表的右方或者下方
参数:
rpt:
表示钻取表的或者名称或者标题
如:
CIUZZ6BLMSUJLUFISUY2K45U37IE71VU //报表id
总资产排名 //报表的标题
ZZCPM //报表代号
行业主要指标排名\ZZCPM //组路径带报表代号其中组的分割符号可以是/或者是\
params:
传递给链接表的参数,参数用分号分割,当前表计算时所用的参数会缺省的传递如:
@zb1=b1.c39;@mc=总资产 //表示将b1.c39传递给@zb1,将"总资产"传递给@mc
target:
表示钻取结果表显示的地方,有两个字符串可选值right和bottom,缺省为right,也可以指定原表的表头表元。
width:
表示显示结果表的区域所占据的高度或者是宽度,比如:
0.3和30都表示30%,大于100的表示具体的宽度以象素为单位,缺省为0.5 isgraphics:
表示是显示图还是图表。
该函数是和target参数配合起来使用,如果target是本表的表头表元(HHH0),那么就把链接的表或图显示在 target指定的表元中。
为true,表示只显示图,默认为false
举例:
javascript:
_zi('ZQKHH_GS',"@inputcode=<#=b2#>;@bbq=<#=@bbq#>","bottom","30") //将钻取的ZQKHH_GS表显示在当前表的下方并且占居整个窗口大小的30%
javascript:
_zi('ZQKHH_GS',"@inputcode=<#=b2#>;@bbq=<#=@bbq#>","HHH2","30",true) //将钻取的ZQKHH_GS表显示在当前表表头表元HHH2中,并且只显示表中的统计图
4._zg()
函数体:
_zg(datas,caption,seriestitle,maintitle,gcell)
说明:
表示在本表中显示图,而且图的数据也是来自于本表,出图的时候,不需要重新计算表。
参数:
datas:
统计图生成图片所需要的数据
captions:
统计图指标的标题
seriestitle:
系列的标题
maintitle:
统计图标题
gcell:
统计图的源表元,钻取后的统计图,也显示在该表元上,该表元可以不传,不传时,就取默认的本表的第一个统计图表元
其中:
datas、captions、serestitle需要引用宏表达式的写法,比如<#=A2$#>
举例:
某表为双向浮动分析表,纵向浮动单位名称,横向浮动报表期。
在分析表刷新结果上点击某一单位名称时,表格下方将显示这个单位所有报表期的一张分析图。
那么在表元名称的链接属性中可以写如下语句:
javascript:
_zg('<#=C2$#>','<#=C1$#>','<#=A2$#>','趋势图','HHH4')
C2$为数据表元、C1$为单位名称、A2$为报表期,HHH4为统计图显示的位置,此处为表头表元。
5._zmenu()
函数体:
_zmenu(configs)
说明:
_zmenu函数会根据参数创建一个菜单并显示出来。
参数:
configs:
一个二维数组,每个元素都对应一个菜单项,其组成为:
[菜单项的文字,事件处理函数,事件处理函数的参数1,参数2,...]
比如:
_zmenu([["钻取A1",_zq,"A1"],["钻取A3",_zq,"A3"]])。
举例:
某指标点击后可弹出一个菜单即可选择查看"总资产"的详细情况,也可选择查看"净资产"的详细情况。
可以在指标表元名称的链接属性中写如下语句:
javascript:
_zmenu([["总资产",_z,'zq_cwzk','@zb1=b1.c39;@mc=总资产;@bbq=<#=@bbq#>;@set_sw=<#=@set_sw#>'],["净资产",_z,'zq_cwzk','@zb1=A1.G3;@mc=净资产;@bbq=<#=@bbq#>;@set_sw=<#=@set_sw#>']])
如上语句,第一个"[]"内表示第一个菜单项,第二个"[]"内表示第二个菜单项。
第一个"[]"中第一个参数"总资产"是菜单项的文字,第二个参数_z表示使用的事件处理函数,第三个参数中包括了_z()函数的所有参数。
函数完成后效果如下:
当用户点击"指标"后将弹出一个菜单选项,当用户选择不同的选项时所链接的参数也会有所不同。
另外:
事件处理函数可以是一个字符串,即函数的名字,比如_zmenu([["钻取A1","_zq","A1"]]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 轻松 掌握 BIReport 函数