老南瓜:如何建立基于SSAS的Reporting Services报表,以及参数(parameters)使用

  通常情况下,SSRS用来建立基于关系型数据源的报表,各种技术书籍上也基本介绍到此为止。而针对基于SSAS数据源的报表,介绍的却少之又少。由于项目的需要,接触了这方面的内容,这里就抛砖引玉,结合自己在项目中的一些体验,介绍一下如何在reporting services中建立基于SSAS的报表,以及如何使用parameters

1、建立数据源

首先我们建立一个新的SSRS项目,然后建立一个新的Shared Data Sources,在Type下拉框下选择”Microsoft SQL Server Analysis Services”

点击”Edit…”按钮,选择Cube.

 

第一步完成,我们建立好了数据源的连接。下面,我们就要建立具体的报表。我们假设以下的案例,建立一个统计每个产品的销售量的报表,以国家,区域/省份,城市为参数来加以过滤。

2、创建空白报表

在建立一个新的报表之后,我们可以看到如下的界面。一共分为三个标签,Data页用来创建报表需要的数据集,Layout页用来设计报表格式以及数据的具体展示,Preview页即预览报表。

由于我们选择的数据源是Cube,所以在左边我们可以看到所选的Cube以及它包括的度量以及维度的相关信息。

3、创建数据集

接下来,我们就开始创建报表所需的数据集。先在Dataset下拉框中选择”New Dataset…”创建一个新的数据集。


系统会弹出以下窗口,直接按”OK”,建立一个空白的数据集。

由于Cube的复杂性,系统提供了方便的拖曳功能来实现数据集的选择。我们通过对需求的分析,了解到需要产品维度中的产品名称属性以及度量值中的销售额,以及地理信息维度中的国家,区域,城市属性。对于前者,我们可以方便的从左边的列表中选择所需的属性,并把他们拖入右边的空白处。

我们报表需要的主体数据产品名称以及销售额已基本建立完成。我们点一下工具框中的刷新按钮,可以看到在屏幕左边的数据集中多出了两个属性:产品名称和销售额。

新增加的这两项,就是我们在Layout页中将用到的数据集成员。

4、设置参数

首先确定哪个维度下的哪个属性为参数,在本例中,我们有三个参数,国家,省份,城市。我们需要把它们从左边的维度列表中选中,并拖到右上方的过滤列表中。请注意,在拖的过程中,要严格按照顺序依次拖入,并把最后Parameters列选中。


这时,我们要做的,就是很神经的一步,从Dataset页切换到Layout页,然后再切回到Dataset页,于是在Dataset下拉框内,我们会惊奇地发现多了三个数据集。

我们分别点击这三个新生成的数据集,我们会发现以下的MDX语句:

 ResellerGeographyCountryRegion:

 

 ResellerGeographyStateProvince:

 ResellerGeographyStateProvince:

 



我们注意到这三个MDX的差别,除了维度下不同的属性之外,就是FROM语句后的差别。CountryMDX后面直接从Cube中获得数据,而RegionFROM语句中包含一个SELECT STRTOSET(@ResellerGeographyCountryRegion,CONSTRAINED) ON COLUMNS,这就是参数间级联关系的实现,根据所选的Country来确定显示该国的RegionProvince也是类似。这也解释了为什么前面我提到的一定要按顺序来拖参数,这样自动生成的代码才会按照顺序来判定级联的顺序。当然,手工修改MDX也没有问题,只要你清楚它的结构。

  经过上面的操作,三个带有联动关系的参数就已经实现了,接下来,我们就可以简单设计一下报表格式。

5、设计报表格式

  切换到Layout页面,拖入一个Table控件,然后从左边的数据集列表中,把产品名以及销售额拖入相应的单元格内,再对表格的样式稍加修饰,就大功告成了。

 

6、预览

最后切换到Preview页面,我们就可以看到效果了。先从三个下拉框内选择参数,然后点击”View Report”,对应的报表数据就展示出来了。

 

 

上述简单介绍了一下如何利用SSRS建立基于SSAS的报表,以及报表参数的运用。在实际的应用的,还有以下问题需要注意:

1、参数拖入的时候要按照需求的顺序拖入

2、拖入参数后只能通过切换Tab页面来创建或更新数据集

3、参数一但更改,Layout页中配置参数的”Multi Value”就会被选中,所以如果大家要增加或删除参数,一定记住去配置参数的界面中,把每个参数的多选项重新设置一下(当然,如果你就需要多选,那就不用管它)

4、在BIDS中编辑报表,其实修改的是后台的xml文件。但有的时候,前台的展示与后台xml的储存会不同步,所以,如果遇到报表预览出错的时候,先不要急着改,试试把报表文件关了再重新打开,这时,很可能就是见证奇迹的时刻……

 

posted @ 2009-09-29 09:58  老南瓜  阅读(3350)  评论(2编辑  收藏  举报