通常情况下,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…”创建一个新的数据集。
由于Cube的复杂性,系统提供了方便的拖曳功能来实现数据集的选择。我们通过对需求的分析,了解到需要产品维度中的产品名称属性以及度量值中的销售额,以及地理信息维度中的国家,区域,城市属性。对于前者,我们可以方便的从左边的列表中选择所需的属性,并把他们拖入右边的空白处。
我们报表需要的主体数据产品名称以及销售额已基本建立完成。我们点一下工具框中的”刷新”按钮,可以看到在屏幕左边的数据集中多出了两个属性:产品名称和销售额。
新增加的这两项,就是我们在Layout页中将用到的数据集成员。 4、设置参数 首先确定哪个维度下的哪个属性为参数,在本例中,我们有三个参数,国家,省份,城市。我们需要把它们从左边的维度列表中选中,并拖到右上方的过滤列表中。请注意,在拖的过程中,要严格按照顺序依次拖入,并把最后Parameters列选中。
我们分别点击这三个新生成的数据集,我们会发现以下的MDX语句: ResellerGeographyCountryRegion: ResellerGeographyStateProvince: 经过上面的操作,三个带有联动关系的参数就已经实现了,接下来,我们就可以简单设计一下报表格式。 5、设计报表格式 切换到Layout页面,拖入一个Table控件,然后从左边的数据集列表中,把产品名以及销售额拖入相应的单元格内,再对表格的样式稍加修饰,就大功告成了。 6、预览 最后切换到Preview页面,我们就可以看到效果了。先从三个下拉框内选择参数,然后点击”View Report”,对应的报表数据就展示出来了。 上述简单介绍了一下如何利用SSRS建立基于SSAS的报表,以及报表参数的运用。在实际的应用的,还有以下问题需要注意: 1、参数拖入的时候要按照需求的顺序拖入 2、拖入参数后只能通过切换Tab页面来创建或更新数据集 3、参数一但更改,Layout页中配置参数的”Multi Value”就会被选中,所以如果大家要增加或删除参数,一定记住去配置参数的界面中,把每个参数的多选项重新设置一下(当然,如果你就需要多选,那就不用管它) 4、在BIDS中编辑报表,其实修改的是后台的xml文件。但有的时候,前台的展示与后台xml的储存会不同步,所以,如果遇到报表预览出错的时候,先不要急着改,试试把报表文件关了再重新打开,这时,很可能就是见证奇迹的时刻……
系统会弹出以下窗口,直接按”OK”,建立一个空白的数据集。
这时,我们要做的,就是很神经的一步,从Dataset页切换到Layout页,然后再切回到Dataset页,于是在Dataset下拉框内,我们会惊奇地发现多了三个数据集。
我们注意到这三个