老南瓜:如何建立基于SSAS的Reporting Services报表,以及参数(parameters)使用
2009-09-29 09:58
567 查看
通常情况下,SSRS用来建立基于关系型数据源的报表,各种技术书籍上也基本介绍到此为止。而针对基于SSAS数据源的报表,介绍的却少之又少。由于项目的需要,接触了这方面的内容,这里就抛砖引玉,结合自己在项目中的一些体验,介绍一下如何在reporting services中建立基于SSAS的报表,以及如何使用parameters。
1、建立数据源
首先我们建立一个新的SSRS项目,然后建立一个新的Shared Data Sources,在Type下拉框下选择”Microsoft SQL Server Analysis Services”,
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_1.JPG)
点击”Edit…”按钮,选择Cube.
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_2.JPG)
第一步完成,我们建立好了数据源的连接。下面,我们就要建立具体的报表。我们假设以下的案例,建立一个统计每个产品的销售量的报表,以国家,区域/省份,城市为参数来加以过滤。
2、创建空白报表
在建立一个新的报表之后,我们可以看到如下的界面。一共分为三个标签,Data页用来创建报表需要的数据集,Layout页用来设计报表格式以及数据的具体展示,Preview页即预览报表。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_3.JPG)
由于我们选择的数据源是Cube,所以在左边我们可以看到所选的Cube以及它包括的度量以及维度的相关信息。
3、创建数据集
接下来,我们就开始创建报表所需的数据集。先在Dataset下拉框中选择”New Dataset…”创建一个新的数据集。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_4.JPG)
系统会弹出以下窗口,直接按”OK”,建立一个空白的数据集。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_5.JPG)
由于Cube的复杂性,系统提供了方便的拖曳功能来实现数据集的选择。我们通过对需求的分析,了解到需要产品维度中的产品名称属性以及度量值中的销售额,以及地理信息维度中的国家,区域,城市属性。对于前者,我们可以方便的从左边的列表中选择所需的属性,并把他们拖入右边的空白处。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_6.JPG)
我们报表需要的主体数据产品名称以及销售额已基本建立完成。我们点一下工具框中的”刷新”按钮,可以看到在屏幕左边的数据集中多出了两个属性:产品名称和销售额。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_7.JPG)
新增加的这两项,就是我们在Layout页中将用到的数据集成员。
4、设置参数
首先确定哪个维度下的哪个属性为参数,在本例中,我们有三个参数,国家,省份,城市。我们需要把它们从左边的维度列表中选中,并拖到右上方的过滤列表中。请注意,在拖的过程中,要严格按照顺序依次拖入,并把最后Parameters列选中。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_8.JPG)
这时,我们要做的,就是很神经的一步,从Dataset页切换到Layout页,然后再切回到Dataset页,于是在Dataset下拉框内,我们会惊奇地发现多了三个数据集。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_9.JPG)
我们分别点击这三个新生成的数据集,我们会发现以下的MDX语句:
ResellerGeographyCountryRegion:
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_10.JPG)
ResellerGeographyStateProvince:
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_11.JPG)
ResellerGeographyStateProvince:
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_12.JPG)
我们注意到这三个MDX的差别,除了维度下不同的属性之外,就是FROM语句后的差别。Country的MDX后面直接从Cube中获得数据,而Region的FROM语句中包含一个SELECT STRTOSET(@ResellerGeographyCountryRegion,CONSTRAINED) ON COLUMNS,这就是参数间级联关系的实现,根据所选的Country来确定显示该国的Region,Province也是类似。这也解释了为什么前面我提到的一定要按顺序来拖参数,这样自动生成的代码才会按照顺序来判定级联的顺序。当然,手工修改MDX也没有问题,只要你清楚它的结构。
经过上面的操作,三个带有联动关系的参数就已经实现了,接下来,我们就可以简单设计一下报表格式。
5、设计报表格式
切换到Layout页面,拖入一个Table控件,然后从左边的数据集列表中,把产品名以及销售额拖入相应的单元格内,再对表格的样式稍加修饰,就大功告成了。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_13.JPG)
6、预览
最后切换到Preview页面,我们就可以看到效果了。先从三个下拉框内选择参数,然后点击”View Report”,对应的报表数据就展示出来了。
![](http://images.cnblogs.com/cnblogs_com/pumpkindatabase/184026/o_14.JPG)
上述简单介绍了一下如何利用SSRS建立基于SSAS的报表,以及报表参数的运用。在实际的应用的,还有以下问题需要注意:
1、参数拖入的时候要按照需求的顺序拖入
2、拖入参数后只能通过切换Tab页面来创建或更新数据集
3、参数一但更改,Layout页中配置参数的”Multi Value”就会被选中,所以如果大家要增加或删除参数,一定记住去配置参数的界面中,把每个参数的多选项重新设置一下(当然,如果你就需要多选,那就不用管它)
4、在BIDS中编辑报表,其实修改的是后台的xml文件。但有的时候,前台的展示与后台xml的储存会不同步,所以,如果遇到报表预览出错的时候,先不要急着改,试试把报表文件关了再重新打开,这时,很可能就是见证奇迹的时刻……
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的储存会不同步,所以,如果遇到报表预览出错的时候,先不要急着改,试试把报表文件关了再重新打开,这时,很可能就是见证奇迹的时刻……
相关文章推荐
- 老南瓜:如何建立基于SSAS的Reporting Services报表,以及参数(parameters)使用
- 如何建立基于SSAS的Reporting Services报表,以及参数(parameters)使用
- ReportView如何使用构造SQL语句带参数的存储过程创建报表以及为rdlc传递参数
- My.Ioc 代码示例——如何使用默认构造参数,以及如何覆盖默认构造参数
- 再谈ReportingService报表中数据源类型为存储过程的数据集如何使用多值参数
- 关于怎么解决从ajax传入的json参数注入到Controller的接收对象 以及如何在Spring Boot项目使用参数校验
- SQL:如何在LIKE语句中使用参数,以及动态执行SQL语句
- Windows系统基于anocanda安装tensorflow以及如何在notebook,spyder等中使用tensorflow
- Mybatis深入-如何使用传递不同类型的参数(以及等量替换符号的使用)
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(1)
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(2)
- servlet(三)-如何使用传参-三种转发方式、传递参数以及对象中数据的范围
- 基于jQuery的GridView-FlexiGrid的使用和改造(1)--如何使用,完全参数说明
- Java报表工具技巧--如何使用Style Report制作以及打印标签
- 如何在报表参数中使用变量
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- vi 中如何使用 :s 命令实现字串的替换以及对参数分隔符解释
- MS BI 中的Ad - hoc 报表 (即席报表) 基本概念以及如何创建和使用
- 献给所有cognos新手 关于 : 基于维度(cube)建立的报表的过滤条件参数 解决OP-ERR-0217 问题
- pyuic的参数,以及如何使用由ui转换的.py文件