recall
作者recall·2012-03-22 10:11
软件架构设计师·NTT DATA

成员值作为参数传递

字数 1353阅读 1407评论 0赞 2

    在报表制作过程中会有需求用到日期维度下当日或当月等衍生指标的值来做一些计算,比如OLAP中有多个日期维度时,可能会取统计日期下的当日值来计算其他日期维度。但是跨维度或跨层级的使用在cognos中是不可以的。

     首先说一下我的思路,维度成员之间传递值是不可能,但是参数传入是可以的。所以我把当日或当月成员的值作为参数的默认值,然后再把这个参数传入需要的其他维度成员中。

 

具体方法如下:

建立查询1,主要是设定一个可选参数和提供当月的值

 

查询1

#prompt('prom','string','[Sales and Marketing].[时间].[Current Month].[月份]')#

 

建立查询2,此为最终查询,包括需要的日期维度及指标。

查询2

filter([Sales and Marketing].[时间].[时间].[月份],caption([Sales and Marketing].[时间].[时间].[月份])=?prom?)

 

页面布局如下:

 

页面

Html1:

<div id="chbox" style="display:'none'">

Html2:

</div><div id="curmon" style="display:'none'">

Html3:

</div>

<script language="javascript">

var cur_mon =document.getElementById("curmon").getElementsByTagName("span")[0];

var ch_box= document.getElementById("chbox").getElementsByTagName("SELECT");

for (i=0;i<ch_box[0].options.length;i++)

{

   if(ch_box[0].options[i].text==cur_mon.innerHTML)

      ch_box[0].options[i].selected=true;

}

canSubmitPrompt();

oCV_NS_.getRV().RunReport();   //报表保存后可用,测试不可用,测试可用(oCVRS.getRV().RunReport()

</script>

 

保存报表

保存后选择报表属性。

去除值的提示选项(默认是选中的)。如果不去除的化报表运行时会提示输入参数的值。

 

 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广