zoukankan      html  css  js  c++  java
  • 【译】设计仪表盘通向报表服务的阶梯系列(六)

        你在公司的饮水机旁,一边和等待接水一边和同事聊着周末的计划。

        “我整个周末都需要加班”她抱怨道。我需要在周末结束之前给大BOSS设计一个仪表。这让你想起了你已经创建过的报表,你感觉你应该能帮上她。

        “我们应该使用报表服务”,你接完水时说道。然后你打开通向报表服务的阶梯系列来看看你能学到什么。本篇文章通过一个示例仪表来展示折线图,数据条和指示器。幸运的话,你和你的同事周末就都不用加班了。

         在开始之前,希望你先阅读本系列文章之前的文章。

    如何开始

        报表开发人员开发两种类型的报表:分析型报表和工作报表。工作报表是在日常工作中经常用到的,它们包括列表和一些可视化项,比如客户的列表,进度的状态报告以及其他一些第三方报表。而分析型报表略有不同,他们提供了一些帮你做出更好的商业决定的更有洞察的数据。这类报表包括仪表盘,积分卡和穿透报表。

        仪表盘是展现分析型报表的最好工具之一。因为仪表盘的类型众多。通常来说,仪表盘展示数据的概括和趋势来突出商业的各个方面。每一个被突出展示的业务面也称为key performance indicator (KPI), 它们可以根据不同的业务组进行分隔和分组。

        我们最终创建好的仪表盘如图6-1所示.

        1

        图6-1.完成后的仪表

    仪表报表项

        在报表服务中,有好几个我们可以用于创建仪表盘的报表项:仪表,数据条,迷你图和指示器。你可以在Business Intelligence Development Studio (BIDS)的工具箱窗格中看到这些项,如图6-2所示。

        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所示。

        4

        图6-4.开始创建仪表盘

    仪表盘报表项

        你需要确定在仪表盘中使用哪个报表项,下面是各个报表项的适用场景:

    • 交通信号灯是一个大多数人熟知的指示器。在交通指示灯中,红绿黄三种灯分别显示不同的状态。在报表服务中指示器的图标可以进行更换来适应趋势的不同状态。
    • 仪表可以通过实际值和目标值接近的程度来展示不同的状态。
    • 在表格中的柱状图也被成为数据条。当你希望看到一范围内的整体视图时,使用数据条。
    • 折线图是一个将一系列数据进行聚合展示的迷你图。和数据条类似,折线图也可以展现一个员工不同季度的销售额数据。

        通过使用上述的报表项,你就可以创建一个可视化仪表盘。下面我们来将上述的报表项加入一个表格。

    指示器

        在图6-4中已经创建好的表格右边插入一列,从工具箱中拖入指示器到这一栏,当指示器被拖入后,选择指示器类型的窗口会被自动打开,记住一点,如果你设计的报表需要被最终用户打印,请不要选择仅仅靠颜色来区分的指示器,因此,我们在这里选择了箭头指示器,如图6-5所示。

        5

        图6-5.选择指示器类型窗口

        在选好指示器类型之后,你需要告诉指示器采用哪种范围标准。左键单击图表,在仪表窗口上,点击如图6-6所示的第一个图表,将会打开属性窗口。

        6

        图6-6.选择指示器属性

        我们可以通过指示器属性窗口来对指示器的属性进行设置。在值和状态窗口.设置需要采用的值的列。这里是Trend,设置状态度量单位为数值,其它需要设置的值如图6-7所示,如果你使用百分比作为度量单位,确保值在0到100之间。

        10457

        图6-7.指示器状态窗口的值和状态选项

        注意:这里有一个设置指示器值的快捷方式:拖入希望的字段到文本框当中,再将指示器拖到文本框上,则指示器的值会被自动设置。删除指示器不会删除原有值。

        既然指示器已经设置好了,报表服务将会根据每行的值来展示不同的图表。仪表和指示器十分类似,也可以看作是一个独立的指示器。

    迷你图

        让我们来使用刚刚创建好的数据集和表格来创建迷你图。我们想要显示每个人每季度的销售额变化状态,通过从工具箱中拖动迷你图到我们刚才创建的指示器上方,弹出选择迷你图类型窗口,我们选择的迷你图类型如图6-8所示。

        8

        图6-8.选择迷你图类型窗口

        当我们选择完迷你图类型后,我们还需要相应的数据来生成图形。选择迷你图项将会打开图表数据窗口。将值设置为SalesAmount并将类别组设置为CalendarYear和CalendarQuarter,最终窗口如图6-9所示。

        9

        图6-9.图表数据窗口

        就是这么简单!我们已经生成了报表,我们已经可以看到指定人的销售额趋势。我们还可以使用数据条来实现类似的功能,使用数据条和使用迷你图设置的属性是一样的,但数据条看上去更加的柱状风格。

    仪表盘完成

        你已经成功的帮助了你的同事完成了仪表盘,准开始准备享受周末。你已经学会如何使用指示器和迷你图来完成一个仪表盘。既然我们在报表中展示了数据,我们还应该将其美化一番。现在是时候来和你的经理谈谈大BOSS还需要什么功能了。你可以在本系列的下一篇文章中将你所学到的知识进行练习。

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

    原文链接:Designing a Dashboard - Level 6 in the Stairway to Reporting Services

    Translated by:CareySon

  • 相关阅读:
    阻止JavaScript事件冒泡传递<转>
    小温谈数据库优化数据库设计篇
    名言集合
    SQL Server中获得EXEC的值<转>
    WIN2008 64位系统配置PHP的方法
    陪伴我作为程序员的9句名言<转>
    C# 的快捷键汇总(一)
    使用VB.NET开发复合控件
    C#写SQL SERVER2008存储过程
    c#图像处理入门
  • 原文地址:https://www.cnblogs.com/CareySon/p/2377429.html
Copyright © 2011-2022 走看看