轻松掌握BIReport钻取函数.docx

上传人:b****2 文档编号:17238341 上传时间:2023-04-24 格式:DOCX 页数:15 大小:194.54KB
下载 相关 举报
轻松掌握BIReport钻取函数.docx_第1页
第1页 / 共15页
轻松掌握BIReport钻取函数.docx_第2页
第2页 / 共15页
轻松掌握BIReport钻取函数.docx_第3页
第3页 / 共15页
轻松掌握BIReport钻取函数.docx_第4页
第4页 / 共15页
轻松掌握BIReport钻取函数.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

轻松掌握BIReport钻取函数.docx

《轻松掌握BIReport钻取函数.docx》由会员分享,可在线阅读,更多相关《轻松掌握BIReport钻取函数.docx(15页珍藏版)》请在冰豆网上搜索。

轻松掌握BIReport钻取函数.docx

轻松掌握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"]]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1