2012年2月29日星期三

【译】用图表展示未知

     伴随着你的经理湿润的呼吸呼到你的脖子上,你很不自然的转过椅子,告诉他你现在所完成的成果。

    “非常好”经理说道,你不禁开始想象他站在你身后摸着胡子的样子。“现在还需要一个饼图,每个报表都有饼图!”,经理说完这句话后,你发觉身后温暖的感觉消失了,取而代之的是脑中想象出经理披着邪恶的黑斗篷的样子。你重重的叹了一口气:“饼图”。

     虽然你知道并不像经理所说的那样,每一个报表都有饼图。但起码你要了解一些饼图和地图的概念来告诉经理其实并不是这么回事。本篇文章阐述报表中不同类型的可视化以及它们的应用场景。

     在开始之前,请确保你已经阅读过本系列文章之前的文章。

 

可视化

    除去基于文本的报表项之外,报表可以通过不同类型的可视化来提供有价值的信息,这些项包括图表,地图和仪表。这些项不仅能使报表的外观更加专业和美观,还能展现出其他方式无法展现出的数据。可视化在SQL Server 2008R2中的项以及他们的应用场景如下:

  • 图表展示了趋势,分析和分组信息。如果你希望用户快速理解报表信息,图表是一个正确的选择。
  • 显示地理信息,则地图是不二之选,因为地图可以在有意义的区域上覆盖信息。
  • 还有许多仪表可视化项,包括仪表,数据条,迷你图和指示器,这些将会被在后续文章介绍到。

    上面的列表中的前两项可以在工具箱中找到,如图5-1所示。

    1

     图5-1.工具箱中的可视化项

 

图表

    图表是在日常中最常用到的。我们在工作中被淹没在Excel和PowerPoint中,有时甚至每月的手机账单上面都有图表。虽然我们已经知道不同类型的图表可以突出一些趋势和数据,但如何选择该用哪种类型的图表?表5-1显示了在报表服务中的图表和他们的使用场景。

图表类型 使用场景
趋势
折线图 趋势
形状 比较
条形图 趋势
面积图 趋势
范围图 趋势
散点图 趋势,比较
极坐标图 比较

表5-1.图表类型和使用场景

 

    既然我们已经知道了该选择哪类图表,下面我们在报表中创建图表。最终完成后的报表如图5-2所示。

    2

    图5-2.完成后的报表

 

    为了完成我们的图表报表,打开BIDS,创建一个新的报表项目后创建报表。针对AdventureWorks数据库写如下查询语句.

select t.Name as TerritoryName     , SUM(o.TotalDue) as TotalOrders     , COUNT(*) as NumberOrdersfrom Sales.SalesOrderHeader oinner join Sales.Customer c     on o.CustomerID=c.CustomerIDinner join Sales.SalesTerritory t     on c.TerritoryID=t.TerritoryIDgroup by t.Name
      代码5-3.AmountSoldByTerritory数据集

    然后我们将图表添加到报表中。从工具箱中拖入图表到设计窗口。图表向导将会打开,如图5-4所示。创建一个条形图。在条形图选项中选择第一个。

    4

      图5-4.在图表类型选择器中选择条形图

 

    单击图表会弹出图表数据窗口.添加TotalOrdersNumberOrders字段到图表数据窗口的值里。添加TerritoryName到类别组里。如果你想用动态数据值来展现不同的条形图,则序列组会很有用。

    现在看上去图表已经达到了我们的需求。但是由于轴的单位是不同的我们看不出实际的订单数量。因此我们需要为订单数量再创建一个轴。在NumberOrders值的属性窗口,在轴和图表区选择水平轴为辅助,如图5-5所示。

    5

     图5-5.序列属性窗口

   

    现在我们运行报表就可以看见,销售订单的数量在图表上面,而销售额在图表下面。最后,我们可以在序列属性窗口中修改一系列的参数,包括颜色,字体,位置。最后产生的结果应该和图5-2类似。

 

地图

    地图报表项是在SQL Server 2008R2首次引入的,你可以使用内置函数对地图上不同颜色的标记从而将数据以不同的方式展示。

    报表服务允许你从下面几种空间数据源中创建地图:

  • 地图库
  • ESRI 形状文件
  • SQL Server空间查询

    当选择好所需的空间数据源时,你就可以将数据附加到地图上了。下面是一个完成后的地图用于显示在美国的客户分布图如图5-6所示。

    6

    图5-6.完成后的地图报表

 

    下面我们来创建一个客户数量地图。使用如代码5-7所示的数据来查询SQL Server数据库。

select s.Name as StateName     , COUNT(*) as PeopleCountfrom Person.Address ainner join Person.StateProvince son a.StateProvinceID=s.StateProvinceIDgroup by s.Name

    代码5-7.CustomerCountByState数据集

 

    当数据准备好之后。将地图项拖入报表的设计窗格。地图创建向导会引导我们创建地图,我们选择了USA by State选项,如图5-8所示。

    8

     图5-8.选择美国地图的地图向导界面

 

    接下来的屏幕提供了改变地图分辨率、标尺和大小的选项。你还可以使用添加必应地图层,这个选项允许你使用必应的Web Service来现实实际的地理信息。让我们以默认选项点击下一步。

    下一个屏幕选择我们希望展示的地图类型:分别为基本图、颜色分析图和气泡图。我们选择起泡分析图后点击下一步。选择刚刚创建的CustomerCountByState数据集。现在我们需要设置好我们的分析数据了。

    接下来的屏幕如图5-9所示,第一个区域将地图文件的metadata和数据集的metadata进行匹配。第二个区域(空间数据)和第三个区域(分析数据)正如其所展示的功能那样。因为我们的数据集返回的是完整的洲名称,所以我们在空间数据集选择字段:STATENAME,在分析数据集使用字段:StateName。

    9

     图5-9.Metadata匹配后的地图向导界面

 

    最后,我们需要告诉报表服务如何弹出气泡。在接下来的的屏幕如图5-10所示,选择数据字段[Sum(PeopleCount)],然后选择主题颜色。完成后,点击完成。

    10

    图5-10.选择数据时的地图向导

 

     记住无论你进行到了哪一步你都可以点击上一步来对已经设置的数据进行修改。你还可以在设计窗格中直接对地图报表项做修改。在完成这些步骤之后,最终你能看到如图5-6所示的报表!

 

不再未知

     在读完本篇文章之后。我们已经充满希望的“用图表展示未知”并准备为报表添加一些更棒的可视化项。我们现在已经知道了如何创建不同类型的图表和使用地图来展现地理信息了。下一步,我们将会将已学到的技巧进行升级。如果你的经理喜欢饼图,那毫无疑问他也会喜欢仪表盘,我们将在下一篇文章:揭示仪表盘中进行阐述。

 

------------------------------------------------------------

原文链接:Charting the Unknown – Level 5 in the Stairway to Reporting Services

Translated by:CareySon


【译】用图表展示未知

TAG: