使用 SQL Server Analysis Services OLAP Cube 创建第一个 SSRS 报表






4.88/5 (48投票s)
本文将为您提供首次使用 SQL Server Analysis Services OLAP Cube 创建 SSRS 报表的一个良好开端。
引言
在本文中,我将一步一步地教您如何在 SSAS OLAP 多维数据集上创建 SSRS 报表。如果您之前了解 SSRS,那很好,否则不用担心,只需按照步骤操作,您就能完成第一个 OLAP 多维数据集报表。
SQL Server Reporting Services (SSRS) 包含在 SQL Server 安装程序中,您只需在安装 SQL Server 时选择此选项。SSRS 可用于集中创建、计划、发布和管理基于各种数据源的报表。您可以使用 Microsoft BIDS、SQL Server Data Tool 或 Report Builder 来开发报表。
让我们快速介绍一下 OLTP 数据源和 OLAP 数据源。
- OLTP 数据模型专门设计用于支持您来自实时系统的事务数据,因此在执行插入、更新或删除操作时,数据操作 (DML) 操作将获得最佳性能。
- OLAP 解决方案的设计考虑了客户的报告需求。该系统能够存储海量记录。在此类 OLAP 源中,查询可以快速执行,即使处理数十亿条记录。
我希望现在您对以上两种不同类型的源系统有了清晰的认识,您可以在我之前发布的文章中找到更多详细信息和区别,或者通过 Google 搜索!!
如果您是新手,可以通过我之前的文章学习数据仓库和 OLAP 多维数据集的创建,这将有助于您学习商业智能。如果您已经阅读了我的文章,那么通过本文学习报表开发后,您将能够为客户提供端到端解决方案。
现在,让我们专注于 SSRS 报表的设计。
必备组件
- 安装 SQL Server 2008、2012(Standard、BI 或 Enterprise Edition)以及 SQL Server Analysis Services (SSAS)、SQL Server Reporting Services (SSRS) 和 Business Intelligence Development Studio (BIDS) 选项。
- 如果您计算机上没有安装 BIDS 环境,也可以使用 SQL Server Data Tools (SSDT) 进行开发。
免费下载!!使用提供的链接下载 SSDT (SQL Server Data Tool)。
Microsoft SQL Server Data Tools - Business Intelligence for Visual Studio 2012
背景
在开始设计 SSRS 报表之前,我们需要进行一些基本的设置和配置,以便在我们的系统中创建数据仓库和 OLAP 多维数据集,如果我们还没有的话。
1. 下载并执行示例数据仓库脚本到您的 SQL Server 实例,并参考提供的文章以获取有关创建销售数据仓库的更多详细信息。
2. 如果您对创建 OLAP 解决方案及其部署没有任何了解,请查看这篇文章。只需按照步骤操作,您很快就能准备好包含数据的 OLAP 多维数据集。
一旦您的 OLAP 多维数据集部署并准备好进行查询,我们就可以开始设计 SSRS 报表了。众所周知,SQL 是用于查询 OLTP 源系统的查询语言,同样,MDX 查询语言用于根据我们的需要查询 OLAP 多维数据集中的记录。
3. 如果您不懂 MDX!不用担心,这里有一篇文章可以帮助您快速轻松地学习 MDX 查询语言。
注意:如果您使用我的数据仓库脚本和 OLAP 多维数据集创建方法,我建议您使用文章中为它们使用的相同命名约定,或者从图像中选择它们以方便您使用。在需要的地方,只需使用您计算机的凭据登录,而不是我的,例如 SQL 登录、SSAS 登录、SSRS 报表管理器登录等。
现在,我们准备好使用 OLAP 多维数据集开始设计我们的第一个 SSRS 报表了。
分几步创建带有 OLAP 源的 SSRS 报表
我在这里使用 SQL Server Data Tool 2012 (SSDT) 来设计 SSRS 报表。
您只需在任何环境(SSDT 2010 或 2012 或 BIDS)中按照这 12 个简单步骤操作,即可创建您的第一个报表服务器项目。
例如,问题陈述
创建 SSRS 报表以查看指定日期范围内已售产品的绩效。
步骤 1:在 SQL Server Data Tool 2012 (SSDT) 中创建 SSRS 项目。
- 从“开始”菜单 -> 选择“所有程序” -> “Microsoft SQL Server 2012”(或 2008)-> 点击 -> “SQL Server Data Tools for Visual Studio 2012”。
- 文件 -> 新建 -> 项目
- 从列表中选择“报表服务器项目” -> 输入项目名称并指定项目位置 -> 点击确定。
步骤 2:创建共享数据源
指定您要用作源系统的 OLAP 数据源连接字符串和凭据。
如果未显示解决方案资源管理器,请
- 在菜单栏 ->视图 >解决方案资源管理器。
- 在解决方案资源管理器 ->右键单击 ->共享数据源 -> 点击添加新数据源。
- 选择源类型 ->Microsoft SQL Server Analysis Services -> 分配连接名称 -> 点击编辑。
- 在服务器名称中分配 Analysis Services 实例名称 -> 选择您的 Analysis Services 数据库名称 ->测试连接以确认成功 -> 点击确定。
- 点击确定完成共享连接的创建。
步骤 3:创建共享数据集
- 在解决方案资源管理器 -> 右键单击 ->共享数据集 -> 点击 ->添加新数据集。
- 输入数据集名称 -> 从下拉列表中选择数据源 -> 点击查询设计器
MDX 查询设计器,它允许您从不同的维度中拖放度量和字段来设计您的数据集。
或
您也可以通过更改查询编辑器工具栏中的设计模式,在同一个查询编辑器中为您自己的数据集编写自定义 MDX 查询。
- 让我们按照下图所示拖放度量和维度属性。
步骤 4:在数据集中创建参数以过滤记录
我们需要 2 个参数来指定日期范围,一个用于开始日期,另一个用于结束日期。
我们还需要另一个参数来通过提供产品名称来过滤记录。
- 将DateKey字段从Dim Date维度拖放到参数部分 -> 选择运算符“范围(包含)” -> 指定筛选器表达式(范围) -> 在参数中选择复选框。
- 将Product Name字段从Dim Product维度拖放到参数部分 -> 选择运算符“等于” -> 在参数中选择复选框 -> 点击确定。
在这里,您可以看到设计器根据您的字段选择自动为您的数据集准备的 MDX 查询。
- 点击确定关闭对话框。
步骤 5:添加新报表
- 在解决方案资源管理器 -> 右键单击报表 -> 点击添加 -> 点击新项。
- 选择报表项目 -> 选择报表 -> 分配名称 -> 点击添加。
步骤 6:在报表数据资源管理器中添加共享数据源和数据集
- 点击报表设计器界面 ->视图 ->报表数据或按(Ctrl + Alt + D)打开报表数据窗格。
在报表数据窗格中添加共享数据源。
- 在报表数据资源管理器 ->数据源上右键单击 -> 选择单选按钮使用共享数据源引用 -> 从下拉列表中选择数据源 -> 分配名称 -> 点击确定。
在报表数据窗格中添加共享数据集。
- 在报表数据资源管理器 ->数据集上右键单击 -> 点击添加数据集 -> 选择单选按钮使用共享数据集 -> 选择您之前创建的数据集 -> 分配名称 -> 点击确定。
步骤 7:更改报表参数属性
现在,让我们更改报表参数 FromDimDateDateKey 和 ToDimDateDateKey 的属性。让我们将数据类型更改为 Date/Time,这样它在预览或运行报表时会显示为日期选择控件,这将便于使用日期选择控件选择日期,并以 dd/MM/yyyy 或 MM/dd/yyyy 格式提供日期。
- 双击FromDimDateDateKey以打开其属性 ->常规 -> 更改数据类型 -> 更改提示中的显示名称。
在常规部分设置值后,现在我们需要删除分配给日期参数的默认日期值。
- 选择“默认值”选项卡 -> 选择“值”下拉列表中的完整限定日期值 -> 点击“删除” -> 点击确定。
- 同样,将参数DimToDateDateKey的数据类型更改为 Date/Time 并删除其默认值。
步骤 8:创建查找数据集以填充产品参数的值
在这里,我们将创建一个只包含产品名称及其键值的数据集。
- 在报表数据 ->数据集上右键单击 -> 点击添加数据集 -> 分配名称 -> 选择单选按钮使用我的报表中的嵌入式数据集 -> 点击查询设计器。
点击查询设计器工具栏中的设计模式按钮,以更改模式输入您的 MDX 查询 ->输入您的 MDX 查询 -> 点击!以执行 MDX 查询并检查查询结果。
MDX 查询
SELECT { } ON COLUMNS,
{
(
[Dim Product].[Product Key].[Product Key].ALLMEMBERS *
[Dim Product].[Product Name].[Product Name].ALLMEMBERS
)
} ON ROWS
FROM [SalesAnalyticalCube]
- 点击确定。
步骤 9:为产品参数指定可用值
- 在报表数据资源管理器 -> 双击DimProductProductName ->常规 -> 在提示中指定显示名称 -> 选择数据类型为 Text。
在报表参数属性的常规选项卡中分配值后
- 点击“可用值”选项卡 -> 选择单选按钮“从查询获取值” -> 选择查找数据集 -> 选择您要作为值传递的数据集字段作为值字段 -> 选择您要在下拉列表中显示为标签字段的数据集字段 -> 点击确定。
步骤 10:在数据集 (DsetSalesData) 参数上放置表达式以转换值
在报表中,我们将两个报表参数的数据类型都转换为 Date/Time,因此当我们从控件中选择日期时,它将是 dd/MM/yyyy 或 MM/dd/yyyy 格式。
而在数据集DsetSalesData中,使用的是 datekey 参数,它期望值为 yyyyMMdd 格式。
因此,为了将提供的日期参数值从日期转换为 datekey,我们需要使用fx修改数据集DsetSalesData中两个日期参数(FromDimDateDateKey & ToDimDateDateKey)的参数值表达式。
- 在报表数据资源管理器 -> 双击DsetSalesData -> 点击参数 -> 点击fx以更改FromDimDateDateKey(3)的表达式。
- 修改并设置FromDimDateDateKey 的表达式值 -> 点击确定。
- 通过遵循以上步骤,类似地使用fx更改DimToDateDateKey的参数值表达式。
- 使用以下值设置报表参数值DimToDateDateKey(4)的fx表达式。
="[Dim Date].[Date Key].&[" & Format(Parameters!ToDimDateDateKey.Value,"yyyyMMdd") + "]"
- 修改DimProductProductName参数值的表达式 -> 点击fx(5)。
- 修改并设置DimProductProductName 的表达式值 -> 点击确定。
="[Dim Product].[Product Name].& [" + Parameters!DimProductProductName.Value + "]"
- 点击 ->确定
步骤 11:设计报表
您在页眉和页脚中指定的任何内容都将在报表的所有页面上重复。
让我们在报表中插入页眉和页脚。
- 在报表设计区域中右键单击 -> 选择插入 -> 点击页眉。
- 在报表设计区域中右键单击 -> 选择插入 -> 点击页脚。
- 选择工具箱 -> 在页眉中拖放文本框 -> 在文本框中分配您的报表标题。
- 从工具箱 -> 将矩阵拖放到报表设计区域。
- 将Full_Date_UK拖放到矩阵的列部分。或将Full_Date_UK拖放到列组。
- 将Product_Name拖放到矩阵的行部分。或将Product_Name拖放到行组。
- 将Quantity拖放到矩阵的数据部分。
现在您的报表已准备就绪,让我们预览一下。
在 SSDT 开发环境中预览报表
- 点击 ->预览 -> 选择开始日期 -> 选择结束日期 -> 选择产品名称 -> 点击查看报表。
12. 将报表、数据源和数据集部署到报表服务器
在这里,我假设您的报表服务器已配置好,并且您拥有使用报表管理器通过 Web 浏览器登录 SSRS 的凭据。
首先在您的项目属性中设置部署属性
- 在解决方案资源管理器 ->SalesAnalysisReports上右键单击 -> 点击属性。
- 设置目标服务器 URL -> 设置目标服务器版本 -> 点击确定。
- 在解决方案资源管理器 ->SalesAnalysisReports上右键单击 -> 点击部署。
在输出窗口中查看部署状态。
使用报表管理器预览报表
- 打开Internet Explorer或Mozilla FireFox -> 输入报表管理器 URL -> 按Enter -> 如果需要,请提供凭据登录报表管理器 -> 点击SalesAnalysisReports文件夹。
- 点击报表 ->SalesAnalyticsReport。
- 选择开始日期 -> 选择结束日期 -> 选择产品名称 -> 点击查看报表。
关注点
您可以修改参数以允许在产品参数中进行多选。我将尽快更新文章,希望您喜欢这篇文章并获得了良好的知识。
享受 SQL 智能。
朋友们,如果您喜欢我的文章,请不要忘记投票给我。