【TechTarget中国原创】我最近写了一篇关于Microsoft商业智能——Report Builder 3.0的文章,其中阐述了Report Builder 3.0是独立的报表制作工具,可以用来设计和定制报表并将报表提交到一个报表服务器上。该文章还介绍了如何添加仪表到报表中,来描述能强化报表效果的关键性能指标(KPI)。
在本文中,我想介绍另一个重要的数据可视化工具——图表。如同仪表一样,图表能通过简明扼要的可视化格式显示有意义的数据来强化Report Builder 3.0报表效果。但是,图表能够描述远比仪表复杂的信息,并且图表可以有许多方式来保证数据的正确表示。
Report Builder 3.0支持许多类型的图表,分别显示比例、线状或多值数据。下表列出了Report Builder 3.0所支持的8种图表类型和它们显示的数据类型:

每一种图表类型都支持许多本质上相似的图表。一般来说,我们可以根据需要切换图表类型(这个过程会随我们对图表的熟悉而变得简单)。对于每一种图表类型和它们所支持的详细图表信息,请查看Report Builder 3.0 Help,这个帮助文件是与Report Builder一起安装的。
创建数据源和数据集
为了演示本文所使用的例子,我安装了一个本地的November 2009 CTP版本的SQL Server 2008 R2实例。我还安装了SQL Server 2008 R2版本带的AdventureWorks示例数据库。除了SQL Server,我还在同一个服务器上安装了November CTP版本的Report Builder 3.0。
在我安装了SQL Server和Report Builder后,我新建了一个报表,并创建了一个数据源连接到SQL Server 2008 R2本地实例的AdventureWorksDW2008R2示例数据库。我将数据源命名为AdventureWorksDW2008R2。然后,我创建一个名为InternetSales的数据集。该数据集使用下面的查询语句来查询AdventureWorksDW2008R2数据源:
SELECT c.FirstName + ' ' + c.LastName FullName, p.EnglishProductName ProductName, t.SalesTerritoryRegion SalesRegion, t.SalesTerritoryCountry SalesCountry, t.SalesTerritoryGroup SalesGroup, d.MonthNumberOfYear MonthNumber, d.EnglishMonthName OrderMonth, d.CalendarQuarter OrderQuarter, d.CalendarYear OrderYear, s.SalesAmount FROM FactInternetSales s INNER JOIN DimCustomer c ON s.CustomerKey = c.CustomerKey INNER JOIN DimProduct p ON s.ProductKey = p.ProductKey INNER JOIN DimSalesTerritory t ON s.SalesTerritoryKey = t.SalesTerritoryKey INNER JOIN DimDate d ON s.OrderDateKey = d.DateKey WHERE d.CalendarYear = @OrderYear |
注意WHERE子句将CalendarYear字段赋为变量@OrderYear的值,这样用户可以在查看报表时指定一个年份。这个变量会作为参数自动地传递给报表。我们可以在Dataset Properties对话框的Parameters页或Report Data面板上的Parameters节点下方查看该参数。
这个数据集查询的数据库已经远远超过我们在图表示例中所需要的。然而,如果我们决定尝试这些例子,这些额外的数据对于我们了解更多图表高级特性会很有用,但是本文不会涉及这些高级特性。
注意:对于这些高级特性的详细信息,以及如何创建一个数据源和数据集,请参考Report Builder 3.0 Help。
在我们创建了数据源和数据集后,我们可以添加图表到报表中了。要记住一个报表通常使用的特性并不仅限于图表,但在本文中,我们只关注于添加和配置图表。因此,这些图表会反映存储在AdventureWorks 数据仓库中的Internet销售量。