none
报表中,如何在自己用MDX建立的计算成员里边引用报表中定义的参数 RRS feed

  • 问题

  • 各位大侠,

      现在在报表中定义了一个数值型的参数,写MDX的计算成员的时候,需要用到这个参数中的数值,请问我怎么取到这个参数中的数值呢?

    谢谢

    2011年12月22日 4:19

答案

  • 很多方法:

    - 最好的方法:可以使用MDX Query Designer 自动生成MDX 语句,在生成MDX的同时由系统为你自动生成所需要的参数;(SSRS 2008 以上版本),好处是系统自动为你产生Fields List,维护起来也方便;限制是MDX 不能太复杂;

    - 中等方法(也是最常用的方法):假如你的MDX 有些复杂,需要引用自定义Named Calculation,你可以在使用Query Designer 的编辑模式来编辑你的MDX 语句;如果你想使用用户自定参数,可以使用 StrToMember, StrToSet 等函数来转换你的用户参数,如:

    StrToMember(@YourParameter,...); StrToSet(@YourParameter,...)

    - 另一种更复杂和灵活的方法:SSRS 的参数定义支持表达式, Label 和函数值都可以使用表达式,你可以将类似的 With Member ... 直接放在参数的表达式中...

    - 最次的方法是将整个的MDX 全部放在表达式中,可以很简单地将参数集成到那个表达式中,像楼上说的。虽然写起来似乎简单和直接,但它不能自动产生数据集的字段列表,当你的报表有几十个字段的时候,你需要花很长的时间来自己填写这些字段。

    • 已标记为答案 winy_w 2011年12月23日 7:12
    2011年12月22日 19:59
    版主

全部回复

  • 拼那个mdx语句,如

    = "with member ..." + CStr(Parameters!para1.Value) + "..."


    想不想时已是想,不如不想都不想。
    2011年12月22日 11:01
    版主
  • 很多方法:

    - 最好的方法:可以使用MDX Query Designer 自动生成MDX 语句,在生成MDX的同时由系统为你自动生成所需要的参数;(SSRS 2008 以上版本),好处是系统自动为你产生Fields List,维护起来也方便;限制是MDX 不能太复杂;

    - 中等方法(也是最常用的方法):假如你的MDX 有些复杂,需要引用自定义Named Calculation,你可以在使用Query Designer 的编辑模式来编辑你的MDX 语句;如果你想使用用户自定参数,可以使用 StrToMember, StrToSet 等函数来转换你的用户参数,如:

    StrToMember(@YourParameter,...); StrToSet(@YourParameter,...)

    - 另一种更复杂和灵活的方法:SSRS 的参数定义支持表达式, Label 和函数值都可以使用表达式,你可以将类似的 With Member ... 直接放在参数的表达式中...

    - 最次的方法是将整个的MDX 全部放在表达式中,可以很简单地将参数集成到那个表达式中,像楼上说的。虽然写起来似乎简单和直接,但它不能自动产生数据集的字段列表,当你的报表有几十个字段的时候,你需要花很长的时间来自己填写这些字段。

    • 已标记为答案 winy_w 2011年12月23日 7:12
    2011年12月22日 19:59
    版主
  • 好的,谢谢
    2011年12月23日 7:12