《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)

SQL Server 2008中SQL应用系列及BI学习笔记系列--目录索引

导读:本文主要创建报表,也就是MDX结果的最终展现,包括:

■1、创建一个简单的报表项目

■2、连接到Analysis Services

■3、设计DataSet

■4、添加参数到DataSet

■5、在Report中设置数据

本文所用数据库和所有源码,请到微软官网下载

本文末尾处附本文所用示例下载。

1、创建一个最简单的报表项目

步骤如下:第一步:在VS2008环境中新建一个Report项目,如下图所示:

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第1张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第2张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第3张图片

二、连接到Analysis Services

创建一个数据源即可。

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第4张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第5张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第6张图片

三、设计DataSet

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第7张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第8张图片

添加一个计算成员

邀月工作室

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第9张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第10张图片

例12-1

WITH
MEMBER [Measures].[Reseller Sales Per Order] AS
([Measures].[Reseller Sales Amount]) / ([Measures].[Reseller Order Count])
SELECT
NON EMPTY {
[Measures].[Reseller Order Count],
[Measures].[Reseller Sales Per Order],
[Measures].[Reseller Sales Amount]
} ON COLUMNS,
NON EMPTY { ( [Product].[Product].[Product].ALLMEMBERS ) }
DIMENSION PROPERTIES
MEMBER_CAPTION, MEMBER_UNIQUE_NAME
ON ROWS
FROM [Step-by-Step]
CELL PROPERTIES
VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE,
FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

修改MDX查询:

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第11张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第12张图片

至此,设计DataSet完成。

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第13张图片

四、添加参数到DataSet

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第14张图片

注意到查询也发生了变化

例12-2

WITH
MEMBER [Measures].[Reseller Sales Per Order] AS
([Measures].[Reseller Sales Amount]) / ([Measures].[Reseller Order Count])
SELECT
{
[Measures].[Reseller Order Count],
[Measures].[Reseller Sales Per Order],
[Measures].[Reseller Sales Amount]
} ON COLUMNS,
{ ([Product].[Product].[Product].ALLMEMBERS ) }
DIMENSION PROPERTIES
MEMBER_CAPTION, MEMBER_UNIQUE_NAME
ON ROWS
FROM (
SELECT
( { [Product].[Product Categories].[Subcategory].&[1] } ) ON COLUMNS
FROM [Step-by-Step]
)
WHERE ( [Product].[Product Categories].[Subcategory].&[1] )
CELL PROPERTIES
VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE,
FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第15张图片

例12-3

WITH
MEMBER [Measures].[Reseller Sales Per Order] AS
([Measures].[Reseller Sales Amount]) / ([Measures].[Reseller Order Count])
SELECT
{
[Measures].[Reseller Order Count],
[Measures].[Reseller Sales Per Order],
[Measures].[Reseller Sales Amount]
} ON COLUMNS,
{ ([Product].[Product].[Product].ALLMEMBERS ) }
DIMENSION PROPERTIES
MEMBER_CAPTION, MEMBER_UNIQUE_NAME
ON ROWS
FROM (
SELECT
( STRTOSET(@ProductProductCategories, CONSTRAINED) ) ON COLUMNS
FROM [Step-by-Step]
)
WHERE
( IIF(
STRTOSET(@ProductProductCategories, CONSTRAINED).Count = 1,

STRTOSET(@ProductProductCategories, CONSTRAINED),
[Product].[Product Categories].currentmember
)
)
CELL PROPERTIES
VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE,
FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

可以修改我们刚添加的参数:

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第16张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第17张图片

修改参数以限制到Subcategory及以上的级别

例12-4

WITH MEMBER [Measures].[ParameterCaption] AS

[Product].[Product Categories].CURRENTMEMBER.MEMBER_CAPTION

MEMBER [Measures].[ParameterValue] AS

[Product].[Product Categories].CURRENTMEMBER.UNIQUENAME

MEMBER [Measures].[ParameterLevel] AS

[Product].[Product Categories].CURRENTMEMBER.LEVEL.ORDINAL

SELECT {

[Measures].[ParameterCaption],

[Measures].[ParameterValue],

[Measures].[ParameterLevel]

} ON COLUMNS ,

[Product].[Product Categories].ALLMEMBERS ON ROWS

FROM [Step-By-Step]

修改后的结果:

例12-5

WITH
MEMBER [Measures].[ParameterCaption] AS
[Product].[Product Categories].CURRENTMEMBER.MEMBER_CAPTION
MEMBER [Measures].[ParameterValue] AS
[Product].[Product Categories].CURRENTMEMBER.UNIQUENAME
MEMBER [Measures].[ParameterLevel] AS
[Product].[Product Categories].CURRENTMEMBER.LEVEL.ORDINAL
SELECT
{
[Measures].[ParameterCaption],
[Measures].[ParameterValue],
[Measures].[ParameterLevel]
} ON COLUMNS,
{
Descendants(
[Product].[Product Categories].[All Products],
[Product].[Product Categories].[Subcategory],
SELF_AND_BEFORE
)
} ON ROWS
FROM [Step-by-Step]

重要:Report Service提供“Select All”选项,此时,当某个用户设置All Members时,在参数的DataSet中的每个可用Member将被选择并提交。

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第18张图片

附带介绍一下Filter 操作符(运算符):

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第19张图片

在上面我们也用到三个字符转换函数:

StrToSet(http://msdn.microsoft.com/zh-cn/library/ms144782.aspx

StrToMember(http://msdn.microsoft.com/zh-cn/library/ms146022.aspx

StrToTuple(http://msdn.microsoft.com/zh-cn/library/ms146079.aspx

5、在Report中设置数据

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第20张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第21张图片

增加report汇总

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第22张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第23张图片

上图的结果我们通过前节的练习,知道,结果是不准确的,Report Service默认使用Sum进行汇总,实际上我们需要使用的是Aggregate函数。

Reseller Order Count列基于Reseller Order Count度量,使用Distinct Count聚合函数。下面我们修改以使用Aggregate函数。

对第三列和第四列依次使用Aggregate函数:

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第24张图片

修改后的效果:

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第25张图片

格式化表格

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第26张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第27张图片

注意:Currency与当前的操作系统设置相关。

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第28张图片

当然,你可以尝试更多的显示效果,例如背景色:

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第29张图片

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十三:创建报表(本书完)_第30张图片

小结:本文是关于Report的初级入门知识,主要是前面所学MdX函数应用的前台展示。本书的学习也到此结束,总的来说,这算是一本书相当简易的基础书,其中的大部分内容都可以在MSDN中找到。

下面一本书将是Cube的提高《Expert Cube Development with Microsoft SQL Server 2008 Analysis Services》,欢迎有兴趣的同学一起读书。

本文所用演示代码:下载

参考资源:

1、MDX官方教程(http://msdn.microsoft.com/zh-cn/library/ms145506.aspx


邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助!
[email protected]


你可能感兴趣的:(sql,server,2008)