你在公司的饮水机旁,一边和等待接水一边和同事聊着周末的计划。
“我整个周末都需要加班”她抱怨道。我需要在周末结束之前给大BOSS设计一个仪表。这让你想起了你已经创建过的报表,你感觉你应该能帮上她。
“我们应该使用报表服务”,你接完水时说道。然后你打开通向报表服务的阶梯系列来看看你能学到什么。本篇文章通过一个示例仪表来展示折线图,数据条和指示器。幸运的话,你和你的同事周末就都不用加班了。
在开始之前,希望你先阅读本系列文章之前的文章。
如何开始
报表开发人员开发两种类型的报表:分析型报表和工作报表。工作报表是在日常工作中经常用到的,它们包括列表和一些可视化项,比如客户的列表,进度的状态报告以及其他一些第三方报表。而分析型报表略有不同,他们提供了一些帮你做出更好的商业决定的更有洞察的数据。这类报表包括仪表盘,积分卡和穿透报表。
仪表盘是展现分析型报表的最好工具之一。因为仪表盘的类型众多。通常来说,仪表盘展示数据的概括和趋势来突出商业的各个方面。每一个被突出展示的业务面也称为key performance indicator (KPI), 它们可以根据不同的业务组进行分隔和分组。
我们最终创建好的仪表盘如图6-1所示.
图6-1.完成后的仪表
仪表报表项
在报表服务中,有好几个我们可以用于创建仪表盘的报表项:仪表,数据条,迷你图和指示器。你可以在Business Intelligence Development Studio (BIDS)的工具箱窗格中看到这些项,如图6-2所示。
图6-2.在工具箱中的仪表盘报表项
使用上图中的报表项和我们之前使用的报表项方法略有不同,下面让我们来创建一个仪表盘。
仪表盘数据
首先以创建一个数据源和数据集来从数据库取出你所需要的信息。比如,使用语句从微软SQL Server 2008 R2提供的AdventureWorksDW示例数据库提取数据,如图6-3所示。
select e.FirstName + ' ' + e.LastName as FullName ,fsq.CalendarYear ,fsq.CalendarQuarter ,fsq.SalesAmountQuota ,frs.SalesAmount ,CASE WHEN fsq.SalesAmountQuota > frs.SalesAmount THEN 1 ELSE CASE WHEN fsq.SalesAmountQuota = frs.SalesAmount THEN 0 ELSE -1 END END as Trend from dbo.FactSalesQuota fsq inner join dbo.DimEmployee e on fsq.EmployeeKey=e.EmployeeKey left join ( select EmployeeKey ,CalendarYear ,CalendarQuarter ,SUM(SalesAmount) as SalesAmount from dbo.FactResellerSales f inner join dbo.DimTime t on f.DueDateKey = t.TimeKey group by EmployeeKey,CalendarYear,CalendarQuarter) frs on fsq.EmployeeKey=frs.EmployeeKey and fsq.CalendarYear=frs.CalendarYear and fsq.CalendarQuarter=frs.CalendarQuarter
代码6-3.AdventureWorksDW 趋势查询
准备开始仪表盘
现在,可以展示的域已经可用。让我们来设计仪表盘。以向报表中添加一个tablix并加入合适的字段开始,这些字段为:CalendarYear和CalendarQuarter 并使用FullName作为分组字段。现在这个表可以如图6-4所示。
图6-4.开始创建仪表盘
仪表盘报表项
你需要确定在仪表盘中使用哪个报表项,下面是各个报表项的适用场景:
- 交通信号灯是一个大多数人熟知的指示器。在交通指示灯中,红绿黄三种灯分别显示不同的状态。在报表服务中指示器的图标可以进行更换来适应趋势的不同状态。
- 仪表可以通过实际值和目标值接近的程度来展示不同的状态。
- 在表格中的柱状图也被成为数据条。当你希望看到一范围内的整体视图时,使用数据条。
- 折线图是一个将一系列数据进行聚合展示的迷你图。和数据条类似,折线图也可以展现一个员工不同季度的销售额数据。
通过使用上述的报表项,你就可以创建一个可视化仪表盘。下面我们来将上述的报表项加入一个表格。
指示器
在图6-4中已经创建好的表格右边插入一列,从工具箱中拖入指示器到这一栏,当指示器被拖入后,选择指示器类型的窗口会被自动打开,记住一点,如果你设计的报表需要被最终用户打印,请不要选择仅仅靠颜色来区分的指示器,因此,我们在这里选择了箭头指示器,如图6-5所示。
图6-5.选择指示器类型窗口
在选好指示器类型之后,你需要告诉指示器采用哪种范围标准。左键单击图表,在仪表窗口上,点击如图6-6所示的第一个图表,将会打开属性窗口。
图6-6.选择指示器属性
我们可以通过指示器属性窗口来对指示器的属性进行设置。在值和状态窗口.设置需要采用的值的列。这里是Trend,设置状态度量单位为数值,其它需要设置的值如图6-7所示,如果你使用百分比作为度量单位,确保值在0到100之间。
图6-7.指示器状态窗口的值和状态选项
注意:这里有一个设置指示器值的快捷方式:拖入希望的字段到文本框当中,再将指示器拖到文本框上,则指示器的值会被自动设置。删除指示器不会删除原有值。
既然指示器已经设置好了,报表服务将会根据每行的值来展示不同的图表。仪表和指示器十分类似,也可以看作是一个独立的指示器。
迷你图
让我们来使用刚刚创建好的数据集和表格来创建迷你图。我们想要显示每个人每季度的销售额变化状态,通过从工具箱中拖动迷你图到我们刚才创建的指示器上方,弹出选择迷你图类型窗口,我们选择的迷你图类型如图6-8所示。
图6-8.选择迷你图类型窗口
当我们选择完迷你图类型后,我们还需要相应的数据来生成图形。选择迷你图项将会打开图表数据窗口。将值设置为SalesAmount并将类别组设置为CalendarYear和CalendarQuarter,最终窗口如图6-9所示。
图6-9.图表数据窗口
就是这么简单!我们已经生成了报表,我们已经可以看到指定人的销售额趋势。我们还可以使用数据条来实现类似的功能,使用数据条和使用迷你图设置的属性是一样的,但数据条看上去更加的柱状风格。
仪表盘完成
你已经成功的帮助了你的同事完成了仪表盘,准开始准备享受周末。你已经学会如何使用指示器和迷你图来完成一个仪表盘。既然我们在报表中展示了数据,我们还应该将其美化一番。现在是时候来和你的经理谈谈大BOSS还需要什么功能了。你可以在本系列的下一篇文章中将你所学到的知识进行练习。
----------------------------------------
原文链接:Designing a Dashboard - Level 6 in the Stairway to Reporting Services
Translated by:CareySon