微软BI开拓者前端应用专区SQL Server Reporting Services 父子维度在rpt里面如何实现级别

1  /  2  页   12 跳转 查看:7948

父子维度在rpt里面如何实现级别

父子维度在rpt里面如何实现级别

设计rept的时候,父子维度在sql2000里面,可以展现父子维度的各个级别,到了sql2005里面却没有了,请问在sql2005里面有没有好的方法?
 

回复: 父子维度在rpt里面如何实现级别

父子维度是一种非常特殊的维度,在其维度中,只通过一张表就可以体现一定的层次结构,并且这种层次结构的层次是无限的,可以任意增加。正是由于父子维度这种特殊的结构,使它具有了很多特性,来实现很多特殊的功能。
      在Reporting Services中,由于是将多维数据集转换为平面数据集,再在报表上进行应用,这样,父子维度的层次结构在Reporting Services中就无法体现出来了,最后的展示效果就变成所有的成员都在一层上了。
      为了在Reporting Services中体现出父子维度的层次结构,我们需要进行一些特殊的设置:
      1. 在数据集中增加两列,一列为维度成员的唯一名称,一列为维度成员的唯一父级名称,如:
with member [Measures].[id] as '[Employee].[Employees].currentmember.uniqueNAME'  member [Measures].[parentid] as '[Employee].[Employees].currentmember.properties("ARENT_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"
      这样,就可以实现对父子维度的层次结构进行钻取了。

附件附件:

您所在的用户组无法下载或查看附件

附件附件:

您所在的用户组无法下载或查看附件

最后编辑jinligang 最后编辑于 2007-09-04 11:48:16
 

回复: 父子维度在rpt里面如何实现级别

老大有问必回,感激啊!
测试中!
 

回复: 父子维度在rpt里面如何实现级别

我刚才试了很久,就是达不到上面图中出现的效果,您的表格布局是什么样子的啊?
我是如下设置布局的:
1、拉入表
2、插入组,以parentid建立一个组
3、再插入组,以id建立一个组,并编辑此组,将父组设为parentid,
    将可见性设为隐藏,同时将报表项设为第一个组(parentid组)所对应的textbox(注:在报表项中,我没有发现parentid)
4、在详细信息里拉入Reseller_Sales_Amount度量值
5、预览
结果展现形式不象您所展现的形式。


另,请问不用表格,用矩阵的话,又如何设置布局
测试了一下午,也没有得到想要的展示结果
最后编辑100 最后编辑于 2007-09-04 18:26:23
 

回复: 父子维度在rpt里面如何实现级别

我将源码做了修改:

with member [Measures].[id] as '[Employee].[Employees].currentmember.NAME' 
member [Measures].[parentid] as '[Employee].[Employees].currentmember.parent.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

主要改动是unqiuename改变为name,

下面附件是我的展现界面

附件附件:

您所在的用户组无法下载或查看附件

附件附件:

您所在的用户组无法下载或查看附件

附件附件:

您所在的用户组无法下载或查看附件

 

回复: 父子维度在rpt里面如何实现级别

此种解决方案的思路很新颖,但是还是没有解决父子维度所带来的问题。
这样的展开,仍然是只有两列,更深的级别是排列在后面,而不是展开到第3层、第4层等等。
我的理解对吗?
 

回复: 父子维度在rpt里面如何实现级别

注意这个做法的两个关键点:
1.在数据源中包括id和parentid两列;
2.在明细组中进行设置,注意这里是明细组,而不是新拉进来一个分组。在明细组中,需要设置父组为“parentid”。
这样,就可以实现父子维度的效果了。
在这里,所有的节点,不论是第几层,都是在一列中进行显示的,但可以实现对多层expend。
 

回复: 父子维度在rpt里面如何实现级别

我也试了一下。结果更是失败。

我是按照步骤做的阿,编辑的详细信息组,建了Account Description组和其父组Parent Account Dim ID,并设置了可见性为隐藏,关联项设置了Parent Account Dim ID。
可是结果出来居然是这样的。

附件附件:

您所在的用户组无法下载或查看附件

附件附件:

您所在的用户组无法下载或查看附件

附件附件:

您所在的用户组无法下载或查看附件

 

回复: 父子维度在rpt里面如何实现级别

我今天又尝试了一下,数据源改为数据仓库,直接取父子维度表。这个是成功了。
但我发现一个问题,因为取的是父子表的所有数据,自然可以从头到尾都构成一个树的结构。
而我的cube为数据源,却展现成这样:

附件附件:

您所在的用户组无法下载或查看附件

 

回复: 父子维度在rpt里面如何实现级别

我的数据里展示的是维度里的第三层和第四层的数据。第一层和第二层没有出来,不知道原因出在哪里?是父子维度的层次的缘故吗?但它是自动生成的层次。
 
1  /  2  页   12 跳转

版权所有 微软BI开拓者 

Powered by Discuz!NT 2.1.202    Copyright © 2001-2010 Comsenz Inc.
Processed in 0.8437608 second(s) , 4 queries.
返顶部