最近在学习使用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/