如何在webi中实现一个简单的hyperlink
2011-09-19 12:54
477 查看
hyperlink是webi报表中为用户提供的超级链接工具,使用hyperlink技术用户可以在相互关联的两个报表中跳转并完成数据的钻取,其中最典型的应用就是在汇总报表和明细报表中跳转。
通过以下几步可以就可以在infoview中建立一个简单的hyperlink跳转,值得注意的是在web intelligence rich plantform中也可以建立hyperlink,但是运行报表无法实现跳转,所以推荐在infoview中对此功能进行实现。
1)首先确定实现跳转链接的两个报表:parent Efashion和targent Efashion
2)parent Efashion中包含了每一年每个国家总的销售收入,我们希望在targent Efashion报表中查看该国家具体的销售内容,则根据此需求需要在两个报表中传递的参数为“国家(state)”
我们通过新建维的方式来实现报表之间的超链接。
3)在inforview中打开parent Efashion报表,并进入编辑状态,点击变量编辑器,新建一个维度变量"z_link",在变量公式中输入
“="<a href=\"../../opendoc/openDocument.jsp?sDocName=Target+eFashion&sType=wid"+"&lsSState="+URLEncode(If IsError([State]) Then UserResponse ("State";Index) Else ""+[State])+"\" title=\"\" target=\"_blank\" nav=\"doc\">"+[State]+"</a>"” ”,点击保存变量
4)在state的报表数据显示单元格中,用z_link维度替换原有的state维度,并在单元格上单击右键设置超级链接--将内容读作超级链接,保存结果即完成对父报表端的设置。
5)超级链接的实现大部分的编辑工作在父报表端,目标报表只是需要提供对于的参数,并完成对过滤器的设置即可。在本例中,我们使用参数state完成两个报表间数据的链接,为了能够使得目标报表以state为条件进行过滤,在targent Efashion的设置中,需要将state设置为查询过滤器,并选择输入的输入方式为"提示"。
注意:过滤器变量text中显示的文字即为该过滤器的名称,可进行编辑,如果text中显示内容包含“:”等标点符号,则该变量名称中也需要有“:”。
通过上面5个步骤可以就可以实现在parent Efashion和targent Efashion之间的简单跳转链接,但是在实现过程中,有几点需要特别提示下,接下来我们通过分析变量z_link中的语法来详细解释下。
1)\"../../opendoc/openDocument.jsp 是webi通过opendocument实现link的固定语法格式,在jsp页面跳转时,都可以使用该语句,如果要跳转的页面在不同的服务器上则需要具体的指明服务器 端口及路径
2)?后面依次是参数的传入,首先是平台参数,通过sDocName参数传递目标报表的名称,sTyp传递目标报表的类型,当指定路径中有相同名称的报表时,则需要通过
iDocID和sIDType来共同唯一指定目标报表。
注意:在webi的编辑语法中,通过“+”来替代单词之间的空格
3)平台参数编辑完成之后,就需要拼接输入参数,webi中通过&IsS或者&IsM来传递参数,其中&IsS用来传递单值参数,&IsM用来传递多值参数。在本例中的输入参数为state。 要注意,&IsS或&IsM后面所拼接的变量名称必须要与目标报表中过滤器的名称一致,连标点符号也不能有差异。
当然在,hyperlink中还有很多其他的属性要设置,如超级链接报表时新打开标签页还是浏览器等,可以通过编辑超级链接来完成,再次不详细解释
相关文章推荐
- 如何实现一个简单的Vue移动端组件库
- 如何实现一个简单地Filter
- linux设备驱动第三篇:如何实现一个简单的字符设备驱动
- 用UDP实现可靠文件传输,如何利用UDX创建一个简单的WIN32程序
- 如何简单的实现一个富文本,图文混排编辑器
- 【Android】如何用MediaPlayer实现一个简单的音视频播放器
- 【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计
- 中级JavaScript例子, 如何实现一个简单实用的模板套用机制, GXTemplate , 第4章(估计要写9章)
- Unity中如何利用一个协程和www类实现简单的图片下载
- 中级JavaScript例子, 如何实现一个简单实用的模板套用机制, GXTemplate , 第一章(估计要写9章)
- 【转】nodejs 如何实现一个简单的插件扩展
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- 中级JavaScript例子, 如何实现一个简单实用的模板套用机制, GXTemplate , 第2章(估计要写9章)
- 如何实现一个简单的rpc框架
- 用UDP实现可靠文件传输,如何利用UDX创建一个简单的WIN32程序
- 如何用viewpager写一个简单易用的安卓Bannner实现轮播
- 如何使用纯win32函数和C语言实现一个简单的文本编辑器
- JavaScript基础教程之如何实现一个简单的promise
- 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式
- 如何用WebSocket实现一个简单的聊天室以及单聊功能