【译】设计仪表盘----通向报表服务的阶梯系列(六)

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

    “我整个周末都需要加班”她抱怨道。我需要在周末结束之前给大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还需要什么功能了。你可以在本系列的下一篇文章中将你所学到的知识进行练习。



本文转自CareySon博客园博客,原文链接:http://www.cnblogs.com/CareySon/archive/2012/03/02/2377429.html,如需转载请自行联系原作者

相关文章
|
传感器 芯片
毕业设计 基于51单片机霍尔电机转速测量温度PWM调速设计
毕业设计 基于51单片机霍尔电机转速测量温度PWM调速设计
318 0
|
区块链 算法 数据安全/隐私保护
带你读《区块链开发实战: 基于JavaScript的公链与DApp开发》之一:自己动手实现一个区块链系统
本书用三个部分讲解了区块链技术以及Asch的相关实践,第一部分讲解了区块链技术的基本概念,并用300行代码实现了一个最小的、可运行的区块链;第二部分分析Asch的源码,讲解Asch的实现原理;第三部分介绍了基于Asch的侧链技术的DApp开发实战。
|
搜索推荐 数据可视化 数据挖掘
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
本文介绍了一个基于Python Flask框架的招聘数据分析推荐系统,该系统具备用户登录注册、数据库连接查询、首页推荐、职位与城市分析、公司性质分析、职位需求分析、用户信息管理以及数据可视化等功能,旨在提高求职者的就业效率和满意度,同时为企业提供人才匹配和招聘效果评估手段。
599 0
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
|
人工智能 编解码 5G
虚拟现实(VR)与增强现实(AR)的融合:开启全新交互时代
【6月更文挑战第17天】虚拟现实(VR)与增强现实(AR)融合成混合现实(MR),打造全新交互体验。MR结合VR的沉浸感和AR的现实增强,应用于教育、游戏、设计和营销,带来创新教学方式、沉浸式游戏体验和高效设计工具。尽管面临技术挑战,随着5G和AI的发展,MR有望引领未来交互的革命。
|
机器学习/深度学习 算法 TensorFlow
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
|
5月前
|
数据采集 存储 算法
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
208 2
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
|
5月前
|
数据采集 搜索推荐 算法
Java 大视界 -- Java 大数据在智能教育学习社区用户互动分析与社区活跃度提升中的应用(274)
本文系统阐述 Java 大数据技术在智能教育学习社区中的深度应用,涵盖数据采集架构、核心分析算法、活跃度提升策略及前沿技术探索,为教育数字化转型提供完整技术解决方案。
|
机器学习/深度学习 自然语言处理 语音技术
探索机器学习中的深度学习模型:原理与应用
探索机器学习中的深度学习模型:原理与应用
323 0
|
机器学习/深度学习 PyTorch Shell
必知的技术知识:ImageNet数据集介绍和下载后的处理
必知的技术知识:ImageNet数据集介绍和下载后的处理
1847 0
|
应用服务中间件 nginx 数据安全/隐私保护
Keepalived 常用配置+检测脚本
1、在与其他服务一起运行下做高可用时,比如NGINX,需要在NGINX断开的时候先尝试启动一次NGINX,如果启动不行,漂移keepalived到备机,所以需要在配置下加检测脚本。
2356 0