博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BIEE叙述图导航实例
阅读量:6576 次
发布时间:2019-06-24

本文共 2558 字,大约阅读时间需要 8 分钟。

hot3.png

今天有网友问到怎样在叙述视图中进行导航?

 

叙述图不同于表格,相要在其中进行导航的话只能借用GO URL或者javacript函数的方式,并且同时还有一个难点在于,其无法像直接在表格字段属性中

设置导航action那样直接将源报表上的条件作为参数传递到目标报表。那怎么办呢?

 

好在BIEE给我们提供了两种方法,一种是基于URL的,一种是利用导航函数的。

 

先来看基于导航函数的吧

 

语法如下: 

 

function GoNav(event, sPath, sTbl, sCol, sVal, sTarget)

where:

event = event indicator.

sPath = the catalog path of the destination search.

sTbl = the logical table name to filter.

sCol = the logical column name to filter.

sVal = the value to filter by.

sTarget (optional) = "_blank" to open a new browser window with the results.

 

 

PortalNav Function

function PortalNav(event, sPortal,sTbl,sCol,sVal)

event = event indicator.

sPortal = the catalog path of the destination portal.

sTbl = the logical table name to filter.

sCol = the logical column name to filter.

sVal = the value to filter by.

 

两个函数,第一个函数是用来导航到请求(11g叫分析)的,第二个函数是用来导航到dashboard的。

 

下面让我们使用导航函数来完成导航吧,叙述图格式如下:

我想要实现当我点击金额的时候 跳转到目标报表,并将金额所对应的月份作为参数传过去,那么我们可以编写如下代码:

[html] 

  1. <font class=nav onclick="JavaScript:GoNav(event, '/shared/demo/target','Calendar','Calendar Quarter Desc',' ');">@2</font>  

 

其中/shared/demo/target是目标请求的路径,Calendar是需要过滤字段所在的逻辑表名称,Calendar Quarter Desc是需要过滤字段的字段名称

@1是参数值(叙述视图中的语法,用于引用第一列值)

注:font标签只是用于承载onclick事件的,大家可以根据自己的需要选择相应的标签。另外经过测试,使用<a></a>标签会报找不到对象的错误,解决变法暂时没有

 

目标请求定义如下:

 

注意需要对Calendar Quarter Desc字段添加过滤器

 

 

OK,至此我们就用GoNav函数完成了在叙述视图中的导航,至于PortalNav的用法同理,只不过Path为仪表盘的Path。

 

不知道大家有没有发现,GoNav有一个很明显的缺点,那就是只能传一个参数,这在很多场合下不太适用,那如果我们传递多个参数应该怎么办呢?

 

答案是使用Go URL,有关Go URL的语法在此不在详述,请参阅

 之

 

下面直接给出实现代码:

[html] 

  1. <a href="saw.dll?Go&Path=/shared/demo/target&Action=Navigate&P0=2&P1=eq&P2=Products.%22Prod%20Subcategory%22&P3=@3&P4=eq&P5=Calendar.%22Calendar%20Quarter%20Desc%22&P6=@1">@2</a>  

 

其实现了如下效果:

当我点击红色方框中的金额时,导航到目标请求,并同时传将月份和产品类型两个参数传递过去

需要注意的是,对于有字段名中含有空格的情况,我们需要用引号将其包起来,并将空格编码为%20,同时还需要将引号进行URL编码

例如:

"Calendar"."Calendar Quarter Desc"

应做如下编码:

Calendar.%22Calendar%20Quarter%20Desc%22

注:不含空格的名称无需引号

 

如果字段名称和参数值均是中文的话,你需要对其进行编码,可以使用JS来完成

 

用记事本新建一个文档,拷贝下面的代码然后保存为test.html(注意后缀名),然后用IE打开就可以得到编码的字符串了

10G的做法:

[html] 

  1. <html>  

  2.  <body>  

  3.   <script>  

  4.   

  5.  var u=  encodeURI('saw.dll?Go&Path=/shared/0.人力资源分析/组件/分析/员工基本信息_test2&Action=Navigate&P0=1&P1=eq&P2="人员类型"."人员类型名称"&P3=实习');  

  6.  document.write(u);  

  7.   </script>  

  8.  </body>  

  9. </html>  

11G的做法

[html] 

  1. <html>  

  2.  <body>  

  3.   <script>  

  4.   

  5.  var u=  encodeURI('saw.dll?Go&Path=/shared/0.人力资源分析/组件/分析/员工基本信息_test2&Action=Navigate&P0=1&P1=eq&P2="人员类型"."人员类型名称"&P3='+encodeURI('实习'));  

  6.  document.write(u);  

  7.   </script>  

  8.  </body>  

  9. </html>  

注意在11G中我们需要参数值使用了两次编码!否则会有乱码问题!

 

另外还需要注意的是,我们也对中文字段加了引号!

 

本文所提到的所有内容均来自Oracle BIEE 11g官方文档

 之

 

强烈建议人手一份官方文档,以便随时查阅。

转载于:https://my.oschina.net/china008/blog/367071

你可能感兴趣的文章
java核心技术反射
查看>>
LAMP,安装脚本
查看>>
电脑上怎样压缩图片大小
查看>>
lnmp安装
查看>>
FTP工作方式
查看>>
Ubuntu16.04 ssh安及root登录
查看>>
C语言dos程序源代码分享(进制转换器)
查看>>
php项目中常用的log日志记录方法
查看>>
LogParser 导入MSSQL
查看>>
linux安装go环境并编写第一个go程序
查看>>
【在线研讨-现场文字】《敏捷开发用户故事分类与组织结构(二期-3)》2012-07-03...
查看>>
易语言 --什么情况下 用许可证
查看>>
项目总结:凡事预则立,不预则废!
查看>>
建属于自己的网站
查看>>
[linux] ubuntu 切换默认的/bin/sh
查看>>
boost库之智能指针
查看>>
我的友情链接
查看>>
自定义View Client 登录方式(一)
查看>>
cenOS+nginx+php+mysql (非一键包安装)
查看>>
我的友情链接
查看>>