none
Reporting Services报表的参数向MDX里传递的问题 RRS feed

  • 问题

  • 用MDX做Reporting Services报表,X轴为时间维度,Y轴为金额合计柱状图。有一个时间的单选下拉框,可以选择2005年7月,2005年8月,2005年9月,2005年10月,2005年11月。。。
    现在的情况是,当任意选择参数时,比如选择2005年9月,报表呈现出来的是2005年9月的金额合计柱状图。
    我想实现的是当任意选择参数时,比如选择2005年9月,报表呈现出来的是2005年9月以及2005年9月之前10个月的各个柱状图。

    现在的MDX如下:
    SELECT NON EMPTY { [Measures].[金额] } ON COLUMNS,  
      NON EMPTY { ([时间].[月].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION,  
      MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( STRTOSET(@[参数], CONSTRAINED) ) ON COLUMNS  
      FROM [TEST]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

    如果想实现,该MDX应该如何修改,谢谢。
    2012年2月20日 12:46

全部回复

  • 请使用Lag函数和冒号。

    想不想时已是想,不如不想都不想。

    2012年2月21日 5:51
    版主
  • 麻烦您能说的详细点吗

    2012年2月21日 10:30
  • 不明白,求详解!

    还有想学些Reporting Service 的知识,有没有什么好书推荐推荐?

    Thanks in advance.


    It's time to start living the life you are imagined.


    2012年2月23日 1:59
  • 可以采用冒号:

    SELECT NON EMPTY { [Measures].[金额] } ON COLUMNS,  
      NON EMPTY { [时间].[2005].&[01]:[时间].[2005].&[09] } ON COLUMNS  

     FROM [TEST]

    其中可以用参数替换为:

    SELECT NON EMPTY { [Measures].[金额] } ON COLUMNS,  
      NON EMPTY { StrToMember(@StartDate):StrToMember(@EndDate)ON COLUMNS  

     FROM [TEST]

    2012年4月21日 7:37