1. 请先看我用ER Win画的星型模型,销售明细表是事实表,客户是维度表
   2.根据此模型用Analysis Services建立了多维数据集如下:
在多维数据集的浏览器中进行浏览的时候,完全能达到我的要求,1.客户是父子维度,并支持多层展开。2我还可以在做一个时间维度,放在colmn中(本例子没有做)如下图:
  其实我就想在Reporting Services中能展示像在上图中的报表就可以了,所以参考了网上的一篇文章http://www.windbi.com/showtopic-416.aspx,文章的主要内容如下:(红字部分)父子维度是一种非常特殊的维度,在其维度中,只通过一张表就可以体现一定的层次结构,并且这种层次结构的层次是无限的,可以任意增加。正是由于父子维度这种特殊的结构,使它具有了很多特性,来实现很多特殊的功能。
      在Reporting Services中,由于是将多维数据集转换为平面数据集,再在报表上进行应用,这样,父子维度的层次结构在Reporting Services中就无法体现出来了,最后的展示效果就变成所有的成员都在一层上了。
      为了在Reporting Services中体现出父子维度的层次结构,我们需要进行一些特殊的设置:
      1. 在数据集中增加两列,一列为维度成员的唯一名称,一列为维度成员的唯一父级名称,如:
with member [Measures].[id] as '[Employee].[Employees].currentmember.uniqueNAME'  member [Measures].[parentid] as '[Employee].[Employees].currentmember.properties("PARENT_UNIQUE_NAME")'
SELECT NON EMPTY { [Measures].[id],[Measures].[parentid],[Measures].[Reseller Sales Amount] } ON COLUMNS, NON EMPTY { (DESCENDANTS([Employee].[Employees].[Employee Level 02].ALLMEMBERS) ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME, PARENT_UNIQUE_NAME, LEVEL_NUMBER ON ROWS FROM [Adventure Works] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS      2. 在表格中设置明细组为“id”,设定父组为“parentid”,然后在可见性中设置为“隐藏”,并将关联的报表项设置为“parentid”。
      3. 在表格明细中,设定“Employees”文本框的左边距设定为:
                                                      level("table1DetailsGroup")*20 & "pt"
      这样,就可以实现对父子维度的层次结构进行钻取了。
但该文章写的不是很详细,我花了大约1个星期去体会它,才把它作出来了。请看一下步骤,①     在报表设计器中切换到设计模式 (点击此按钮 可以切换到设计模式),然后写上以下代码:    with member [Measures].[id] as '[Dim Client].[Parent Id].currentmember.name'       member [Measures].[parentid] as '[Dim Client].[Parent Id].currentmember.parent.name' SELECT     NON EMPTY { [Measures].[id],[Measures].[parentid],[Measures].[Cost] } ON COLUMNS,     NON EMPTY { (DESCENDANTS([Dim Client].[Parent Id].[Level 02].ALLMEMBERS) ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME, PARENT_UNIQUE_NAME, LEVEL_NUMBER ON ROWS FROM [Sale] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS截屏如下:
②     切换至布局界面,在工具箱中把“表”拖至布局中,截图如下:
③     在数据集中把元数据 Id (Fields!id.Value,下图红色框内)拖至明细项中,把Cost度量值拖到其后面,如上图所示。数据集如下图所示:
④     选中明细行(注意,是选中整行,如下图的红框所示),右键,选择编辑组:   ⑤     弹出如下界面:在父组中选择 =Fields!parentid.Value
⑥     点击上图的Tab页的“可见性”:把设置设为如下所示:
其中上面的id_1是选中表的第二行第一列(=Fields!id.Value)的textBox的name属性,如下图
⑦     点击属性后,在弹出界面设置为如下两个图在左间距中输入 “=level()*20 & "pt"”,如上图红框所示。这是使得子节点向右偏移一段距离。⑧     切换至预览,可以看到已经把父子维度展示到SSRS中了:
 但尚有一些疑问想请教各位:1.       按照我上述的做法去做的时候,我想添加一个报表参数,对客户进行筛选,,通过报表参数设置界面设置好了之后,
 无论我在预览中怎么改变参数,其数据都没有发生变化,不知道为什么?2.上述的展示形式是通过“表”来实现的,假如我想通过“矩阵形式”展示,应该如何做?