积极答复者
报表中,如何在自己用MDX建立的计算成员里边引用报表中定义的参数

问题
答案
-
很多方法:
- 最好的方法:可以使用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
全部回复
-
很多方法:
- 最好的方法:可以使用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