`

MDX动态参数的跳转_Jpivot的clickable标签的使用

阅读更多

        最近在学习使用MDX查询语言,对MDX的语法有了一些掌握,用了一天多的时间来学习使用MDX的bug动态参数跳转问题,其中遇到了一些bug,但经过多方尝试及和同事讨论最终还是解决了哪些bug!有些bug如

com.tonbeller.jpivot.tags.OlapModelTag#doEndTag:

com.tonbeller.wcf.controller.EmptyThreadLocalStackException

这个bug,上网查了很久,网上关于这个异常资料不是很多,中英文的网页资料都看了还是没有找到解决方法,后来自己无意中从同事的另一个不解之处找到了问题的根源。原来是web.xml的配置出了些问题。具体我会在我的下一篇博客中会说明。

 

       现在,主要说说我在实现mdx动态参数的跳转时自己的摸索到的一些知识点和收获。我这里实现的动态参数跳转用到的是jpivot的clickable标签。

 

       该标签的作用是给一个 dimension 或一个 level 里的所有的 members 加上超链接,使得它们变的可以进行点击操作。生成的 URL 中包含这个 member 的唯一名称,这个标签必须要在一个 table 或一个 query 的标签里嵌套使用。

 

 

            由于跳转涉及到schema文件和几个jsp页面,

 对于标签里面的几个属性的写法我摸索的还不是太清楚,只知道怎样设计会有什么效果,因为网上资料对这个标签的使用实在太少了。

      如 <jp:clickable urlPattern="/otherpage.jsp?param={0}" uniqueName="[Customers]"/>

     

      及

 

 

select

  {[Measures].[ 数量 ],[Measures].[ 平均单价 ],[Measures].[ 总销售额 ]} ON columns,

  {Parameter("ProductMember", [productCategory],[productCategory].[All Product])} ON rows

from [Sales]

   中Parameter里面的参数设置我还是不太清楚,只是实验了几种不同写法会产生不同效果。

      不过可以确定的是,clickable标签中的uniqueName属性设置到维而非层次或级别或成员时,在跳转到的页面param4.jsp中查询语句中Parameter参数里含有children核不写到children,两种情况的查询结果是不同的。

 

      里面涉及到的mdx查询代码,页面跳转代码以及配置文件里的部分关键代码,还有对于不同查询产生的不同效果我已通过截图并整理了放在我上传的文件中。

  若有对这方面的需要可以下载来参看一下,欢迎大家一起学习交流。

 

 


By the way, 供大家交流Pentaho的圈子,里面可以共享有关pentahoBI平台学习的资料,期待您的加入! http://pentahofrends.group.iteye.com/

1
0
分享到:
评论
3 楼 yichao 2010-07-26  
问题解决。
第一个问题是由于标签id命名一致导致的缓存。第二页中的<jp:table>标签id命名不能与第一页的相同,否则第二页的<jp:mondrianquery/>中的语句不执行。在这期间也发现jpivot的某些标签在 web2.4环境下不可用,降低到web2.3即可。
第二个问题的配置取决于是用的web2.4还是2.3
2 楼 ruinxdgzy 2010-07-24  
yichao你好!对于你的第一个问题我做Demo时没遇到,可能是缓存问题,由于我没遇到也不知道怎么解决。
对于你的第二个问题,我测试过几种情况,只发现下面这种情况下core的out标签不起作用,那就是引入的标签库版本不正确,其他情况要么是不显示结果要么就是报异常。
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
第一种是正确的,比如像第二种版本就会不起作用,把那句话直接打印出来,你检查一下你的页面是否是这个原因导致的。
1 楼 yichao 2010-07-24  
我做了相同的设置,可是点链接到第二个页面出来的数据还是第一页的数据。请问您还碰到这个问题?
还有<c:out value="${paramquery01.extensions.setParameter.displayValues['ProductMember']}"/>这句话显示在页面的是${paramquery01.extensions.setParameter.displayValues['ProductMember']}.<c:out/>标签没起作用

相关推荐

Global site tag (gtag.js) - Google Analytics