如何建立基于SSAS的Reporting Services报表,以及参数(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语句后的差别。Country的MDX后面直接从Cube中获得数据,而Region的FROM语句中包含一个SELECT STRTOSET(@ResellerGeographyCountryRegion,CONSTRAINED) ON COLUMNS,这就是参数间级联关系的实现,根据所选的Country来确定显示该国的Region,Province也是类似。这也解释了为什么前面我提到的一定要按顺序来拖参数,这样自动生成的代码才会按照顺序来判定级联的顺序。当然,手工修改MDX也没有问题,只要你清楚它的结构。
经过上面的操作,三个带有联动关系的参数就已经实现了,接下来,我们就可以简单设计一下报表格式。
5、设计报表格式
切换到Layout页面,拖入一个Table控件,然后从左边的数据集列表中,把产品名以及销售额拖入相应的单元格内,再对表格的样式稍加修饰,就大功告成了。
6、预览
最后切换到Preview页面,我们就可以看到效果了。先从三个下拉框内选择参数,然后点击”View Report”,对应的报表数据就展示出来了。
上述简单介绍了一下如何利用SSRS建立基于SSAS的报表,以及报表参数的运用。在实际的应用的,还有以下问题需要注意:
1、参数拖入的时候要按照需求的顺序拖入
2、拖入参数后只能通过切换Tab页面来创建或更新数据集
3、参数一但更改,Layout页中配置参数的”Multi Value”就会被选中,所以如果大家要增加或删除参数,一定记住去配置参数的界面中,把每个参数的多选项重新设置一下(当然,如果你就需要多选,那就不用管它)
4、在BIDS中编辑报表,其实修改的是后台的xml文件。但有的时候,前台的展示与后台xml的储存会不同步,所以,如果遇到报表预览出错的时候,先不要急着改,试试把报表文件关了再重新打开,这时,很可能就是见证奇迹的时刻……