互联网服务商业智能

利用宏函数进行值提示的动态过滤

一般我们都是通过添加提示页以及JS代码来控件值提示默认值的动态选择,但今天有一位同事说他们客户觉得从提示页到报表页的间隔比较明显,问我有没有其他的方法。于是我研究了下利用宏函数进行值提示的动态过滤; 现分享给大家,步骤如下:1. 创建三个查询,如下图:Final_Q是通过其他...显示全部
一般我们都是通过添加提示页以及JS代码来控件值提示默认值的动态选择,但今天有一位同事说他们客户觉得从提示页到报表页的间隔比较明显,问我有没有其他的方法。于是我研究了下利用宏函数进行值提示的动态过滤; 现分享给大家,步骤如下:

1. 创建三个查询,如下图:

$700015815D357EB4.jpg


Final_Q是通过其他两个查询join起来的;目的是运行报表时,使值提示控件的显示值和报表正文的数据一致, 下图是两个查询的关联:



2. 在Final_Q里添加过滤#prompt('P1', 'token','[QUARTER]=maximum ([Dim_Quarter].[QUARTER] for report)','[QUARTER]=')#
这里使用了#prompt宏函数的四个参数(最多可写六个参加),第一个是参加名称;第二个是定义数据类型,这里token的意思是将这个参数的值不作为一个SQL执行语句输出; 第三个是默认值(这里用了一个普通的过滤表达式);第四个是用户输入值,因为我们是针对[QUARTER]进行过滤,所以这里写上[QUARTER]=  组成一过滤表达式,  如果用户不输入任何的值,那么就使用第三个参数的表达式进行过滤, 如果用户输入了值,那么第三个参数则无效,使用第四个参数的表达式

3. 拖入一个值提示控件,将控件对应的参数名指定为第二步中宏函数定义的‘P1’这个参数名。 使用的查询指向Dim_Quarter,并且将值提示设为自动提交,然后为了值提示的显示依然需要在值提示控件后添加一段修改默认值的JS, 代码如下:


4. 将Final_Q拖入工作区域,运行报表查看结果吧收起
参与13

查看其它 8 个回答tianmin757的回答

tianmin757tianmin757软件开发工程师IBM
学习了!!
互联网服务 · 2014-01-13
浏览1127

回答者

tianmin757
软件开发工程师IBM

tianmin757 最近回答过的问题

回答状态

  • 发布时间:2014-01-13
  • 关注会员:3 人
  • 回答浏览:1127
  • X社区推广