原文:[翻译]初识SQL Server 2005 Reporting Services Part 3
这是关于SSRS文章中四部分的第三部分。Part 1提供了一个创建基本报表的递阶教程。Part 2展现了为制作动态报表所用到的SSRS2005的核心特性和功能。这一部分中我们将把注意力转向SSRS中的图表控件。
微软的图表控件其实是Dundas 图标控件的按比例缩小版。不管是不是缩小版,我敢说这个的确非常好用。对好多人来说,他们使用SSRS就是看中了这个控件。
在这篇中我们要创建一个带有图表控件的报表,我们将看到不同的显示选项以及一些非常酷的美化技巧。
开始
现在我们已经到了Part 3了,所以我觉得你应该把所需软件安装好了。就是已经创建了ReportingDemo数据库,懂得创建基本报表,数据源和数据集。如果你觉得还有些生疏,那么就返回到Part 1重头再来。
笔记:
可以下载源码文件。
编辑笔记:
Part 1中的创建数据库脚本没有Purchase表,所以这里还需要运行ReportingDemo_Update来创建它。
创建一个基本报表
先来创建一个报表服务器项目。添加共享数据源指向数据库。添加报表MyChart。用下面的查询创建数据集,这个查询是关于购买的各种信息。
SELECT
Purchase.PurchaseID,
Purchase.CustomerID,
Purchase.PurchaseDate,
Purchase.PurchaseType,
Purchase.PurchaseAmount,
Customer.FirstName + ' ' + Customer.LastName AS CustomerName
FROM Purchase INNER JOIN
Customer
ON Purchase.CustomerID = Customer.CustomerID
在报表设计器中,将报表拖大一些这样我们就有足够的控件放置图表控件。应该是这个样子的:
打开数据集选项卡。将PurchaseAmount拖拽进图表顶部的“将数据字段托至此处”。将PurchaseDate字段拖拽进底部的“将类别字段拖至此处”。
现在我们就设计了一个可以显示某天顾客所购买物品的之和。保存并运行报表:
如果你的需要很基本,那图标控件这样就可以满足。
图表类型
在深入探究图标控件之前,需要注意的是可以有不同的图表类型。在布局选项卡中右击选择图表类型就可以了。这里我们选择平滑折线图。
添加序列
数据字段和类别字段构成了图表的横坐标和竖坐标。图表控件也可以在同一个图表中显示不同层次的数据信息。每个层次就成为一个序列。在这个例子中,购买数据关联了两种不同的顾客。将CustomerName字段拖拽进“将序列字段拖至此处”。预览就会发现图表显示了每位顾客的消费模式。
设置报表属性
开始之前,把报表类型变回简单条形图。右击图表选择属性。在这里可以设置图表属性也可以对数据显示方式进行设置。注意其实你可以人工设置关于数据,分组,和序列,我们当时只是简单的进行拖拽操作。现在让我们分别来看看属性对话框中的各个选项卡。
请注意当我们看这些选项的时候,到处可以见“fx”按钮。这个的功能就是提供一个表达式输入而不仅仅是写死的代码,就像我们在Part 2中描述的那样。
常规选项卡
在这个选项卡中你可以给图标控件进行命名操作。也可以设置图标类型。单击图表区样式可以设置图表的背景。绘图区样式可以更改报表的基本属性。还可以给图表添加标题,可以单击标题右边的按钮设置其属性。另一个很巧妙的地方是可以应用调色板到图表。单击图表区样式中的填充选项卡,设置颜色为Thistle,渐变为TopBottom,就是这么简单。
数据选项卡
数据选项卡可以很容易的人工设置到底要显示哪些数据还有怎样显示。就想图表中一样,有四个数据区域:值(在拖拽中叫做数据区域),分组和序列。在不同的区域你可以添加或移除条目。单击编辑按钮可以针对每个组进行单独设置。
现在让我们仔细看一下值属性。单击值区域旁边的编辑按钮,就可以看到编辑图表值对话框。在这里你可以对要显示的数据进行设置,也可以给序列命名。在外观选项卡可以设置标记,设置序列样式。点标签可以对网格中的点设置标签。操作选项卡可以跳转到报表的不同地方,其实是任何合法的URL。URL可以使写死的代码或者表达式。
现在打开点标签,设置显示点标签。这样在图的右边就会显示出来具体数值信息。将表达式设置为=Fields!PurchaseAmount.Value,设置格式为C。这样就会以X.00显示。你可以设置标签样式来设定标签的字体和颜色。
X轴和Y轴
这两个选项卡可以设置XY的显示信息。你可以设置一个显示在图表区域之外的标题。也可以控制网格线和标签格式。我们的X轴是购买日期。让我们通过设置格式代码为d来进行日期格式设置为mm/dd/yyyy。选择上侧边距和翻转复选框。这样就会显示一些边距,也会在顶部显示数值。在Y轴选中交错带,可以改变图表的背景显示。
图例
首先你可以选择要不要显示图例,也可以设置图例的布局,可以是列,行或表。你使用的图例布局将会决定布局是不是最好的。例如,如果你将图例放在底部位置,你就可能想使用行。图例样式对话框可以设置图例样式。
三维效果
这个选项卡可以设置令人兴奋的3D效果。
我很喜欢这个选项卡。我可以在这玩儿上几个小时。大部分默认设置已经很棒了。四个控制图表效果的值是水平旋转,透视,墙厚度,垂直旋转。通过这些值来探索到底能做什么是很好的事情。我建议你从默认开始。然后试着滑动数值来看看图表是不是还像以前那样可读。如果你按照下面的进行设置,会非常好。
在这个例子中使用如下设置:
水平旋转 |
65º |
透视 |
0% |
墙厚度 |
5% |
垂直旋转 |
-5º |
你还可以设置底纹信息。
筛选器
这里显示了怎样使用数据集中的列和表达式进行过滤显示的数据。这在单报表中显示多图表中很有用。重要的是可以在已存在的数据集中选择子集。例如,你可以从同样数据集中选择不同图表显示不同购买类型。
这里让我们显示两个图表。一个是显示Internet Sales,另一个显示In Store。首先复制一份图表然后粘贴。上面的设置过滤为如下:
Expression |
Operator |
Value |
=Fields!PurchaseType.Value |
= |
Internet |
下面的如下设置:
Expression |
Operator |
Value |
=Fields!PurchaseType.Value |
= |
In Store |
报表
转到预览查看最终效果,可以看到我们创建了一个显示两个3D图表的单报表,而且数据源只有一个。这篇文章给我们简单展示了图表控件,可以将这些例子映射到你的应用当中。
总结
希望这篇文章能让你更了解图表控件。在其丰富的特性和SSRS通过表达式设置几乎任何属性的能力上,我们可以看到微软在报表工具中确实发布了一个非常有实力和友好的组件。
在这个系列的Part4我们将会转到RDL(报表定义语言),还要看看报表设计器。