SQL_Server_2005报表服务高级编程(第二章).docx
《SQL_Server_2005报表服务高级编程(第二章).docx》由会员分享,可在线阅读,更多相关《SQL_Server_2005报表服务高级编程(第二章).docx(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 Microsoft SQL Server报表服务2005简介 162.1 传统的应用程序报表 172.2 当今的报表需求 172.3 定义的商业智能 182.4 场景解救自动化系统 192.5 现有报表解决方案的挑战 202.6 SQL Server报表服务如何面对挑战 212.7 商业智能解决方案 222.8 谁使用报表,为什么使用 222.8.1 执行领导 232.8.2 经理 232.8.3 信息化员工 232.8.4 客户 232.8.5 制造商和合作伙伴 242.9 报表解决方案的替代品 242.9.1 关系数据(OLTP)报表 242.9.2 关系数据仓库 252.10 报
2、表生命周期 262.11 报表交付应用程序类型 262.11.1 Web浏览器 262.11.2 Office应用程序 272.11.3 可编程性 272.11.4 订阅 272.11.5 报表格式 282.11.6 导入/交换数据 282.11.7 即席报表 282.12 系统需求 282.13 报表服务组件 302.13.1 服务器组件 302.13.2 客户组件 302.13.3 获得联机图书的帮助 302.13.4 Adventure Works示例数据库 302.14 管理工具 312.14.1 命令行和无人参与安装 312.14.2 日志文件 312.15 设计报表 312.15.
3、1 窗体报表 312.15.2 表格报表 322.15.3 分组和下钻 322.15.4 钻取报表 322.15.5 多列报表 322.15.6 矩阵 322.15.7 图表 322.15.8 数据源 332.15.9 查询 332.15.10 OLAP报表 332.16 使用Business Intelligence Development Studio 342.16.1 报表向导 342.16.2 .NET Framework 342.17 扩展报表服务 352.17.1 数据处理扩展 352.17.2 交付扩展 352.17.3 安全扩展 352.17.4 显示扩展 352.17.5 脚
4、本 362.17.6 订阅 362.17.7 安全报表 362.18 报表管理器 372.18.1 设计报表 372.18.2 通过URL访问报表 382.18.3 用程序代码显示报表 382.19 报表定义语言 392.19.1 部署报表 392.19.2 设计和架构报表解决方案 392.19.3 第三方产品集成 392.19.4 Panorama企业报表器 402.19.5 用于报表服务的ProClarity 402.20 小结 40第2章 MS SQL Server2005报表服务简介2.1 传统的应用程序报表SQL Server 报表服务(SSRS)2005是在Microsoft第一次
5、发布的报表平台上扩展而来的。在2003年,Microsoft发布了报表服务,作为SQL Server 2000产品套件的一部分。报表服务本来要作为整个SQL Server 2005发布的一部分,但是,报表服务开发团队发现有一个机会可以提前推出这个产品。值得赞扬的是,这次发布非常成功。报表服务已经成为第一个版本就被广泛使用的Microsoft产品之一。这也意味着,它还是产品的首个版本,还有推敲和优化的空间。开发团队按照优先级从一个长长的“愿望列表”中选择功能。这个列表包括本质的、非本质的、甚至一些不会在最终产品中出现的功能。这个列表中的增加项将在推出每个新版本和服务发布时加入进来。本章中将会介绍
6、: 访问数据和交付报表的新方法,它是报表服务平台扩展体系结构的一部分。 报表是如何存储在一个简单的、可移植的报表定义扩展标记语言(XML)文档中的使用一个称为RDL的标准。 报表服务可以完全可靠和高度可定制。报表可以通过使用报表管理Web界面管理和查看,或者使用提供的报表查看器或自定义的视图内嵌到定制的应用程序中。 大量的交付选项,包括定时的订阅,允许用户通过文件或者电子邮件接收报表。报表内容可以用不同的方式缓存以提高性能和保留服务器资源。在2000年产品发布时,Microsoft花费了大量时间来保证正在进行中的平台是可扩展的、可伸缩的、结构良好的。我相信从长期使用这个产品的观点看来,这是正确
7、的决策。聚焦到平台上,确实需要将一些最终用户的功能推迟到下次发布。我们在SSRS 2005中所看到的功能是用户广泛要求加入的一些主要功能。这些包括可以多选的参数、可排序的标题以及大量的用户功能增强。主要的改进出现在新的报表生成器应用程序。报表生成器允许用户通过一个友好的、类似Microsoft Office的界面来很容易地创建他们的报表。如果读者对.NET Framework、Web 服务、SQL Server以及ASP.NET的功能印象深刻,应该知道通过这些技术报表服务将访问数据的能力提高到一个新层次。Microsoft实现了它的承诺,使得可以“在任何时间、任何地点、通过任何设备”获得信息。
8、报表可以使用定制的视图格式和页面大小来支持移动设备。有其他一些报表工具也有使人印象深刻的功能,但是没有一种比得上这个工具。本章将介绍几个主题,这些主题在本书的后面部分将会详细介绍。这里将为读者提供一个SQL Server报表服务的需求和目的、能力和机制的高层次的观点。2.1 传统的应用程序报表在很多商业应用程序中,报表是最后添加的事物。在设计系统时,总有大量的时间花费在工作流、数据元素和用户界面上。系统要用大量时间去设计、构建、测试和部署。最后,很多公司选取了一个适合采集信息和提高生产率的工具。然而,报表总是得不到足够重视。人们总是将报表看作一个简单的、相对容易完成的附属物。真实情况是,好的报
9、表同样需要对初始的应用程序做扎实的规划和设计。报表设计者需要清楚地定义用户在寻找什么、他或她会怎样使用报表、多久会使用一次。如果没有合适的规划,查询将变得复杂和难以维护。报表运行缓慢并容易产生错误。为了避免这些麻烦,报表设计者需要一个规划。在一个完美的世界里,设计者要围绕报表需求去设计数据库的体系结构和应用程序,在设计系统之前要完全了解用户的需求。而在现实世界中,设计者可以提前了解一些用户需求,但是用户经常在其他一些功能已经完成之后才产生新的报表需求。Frederick P. Brooks在人月神话中提到,在任何设计中从前几次尝试中吸取教训并且丢弃它们,这是一个不错的主意。通常分阶段设计报表,
10、初次尝试将会是一个原型系统。我的经验是当报表设计者积累初始需求时,用户会要求提供一些符合特定要求的不同报表。在解决方案已经实施,用户开始使用之后,其他人几乎不可避免地意识到把报表作为助手也会使他们的工作变得轻松。当用户意识到他们能得到哪些不同的信息,他们会发现新的、令人激动的方法来对数据排序、筛选、分类以及建立基准数据、对数据进行分片和分块,这些方式他们以前从来没有想过。现在,是报表设计者为他们提供了实现这些的可能性。2.2 当今的报表需求静态的、打印的报表对于一个产品和价格列表或者对于一个公司来说是一种可以接受的格式,但是对于当今需要做出重要决策的大多数信息化时代的用户来说是不能接受的。要做
11、出商业决策的人需要相关的信息,他们需要以适合他们角色和责任的方式来查看报表。因为很多用户以稍微不同的方式处理信息,报表设计者可以建立成百上千的报表,为每个特定需求建立一份报表。另外一种选择是,报表设计者可以建立灵活的报表以满足很大范围内的用户需求。比如说,一份销售总结报表可以按照销售员的地区或者客户类型来分类和筛选,包括每年、每季度、每月或每周的信息或者一个特定产品目录的信息。为每一个这样的需求产生一份报表将会非常耗费时间和开销。除此之外,计算机用户比他们几年前更为聪明,他们需要一个工具来帮助他们做出决策,而不是仅仅提供数字给他们看。我还记得几年前在Hewlett-Packard(惠普)工作时
12、,我在与制造业有关的IS组。每个周四都会收到一个报表卡片。上面有以一周和一个月为基础的主框架系统产生的几个常规的定时报表。用户,一般是部门经理,将会订阅这些报表。报表在另外一个大厦中打印,然后人工送到每个订阅者手上。这些报表中很多只是大量的数据列表和一些打印在连续的复写纸张上的文本,有的达500页之多。我观察到好奇的经理们会小心翼翼地翻阅一下,做上标记或者在自己感兴趣的地方画圈。有些甚至将它们装订成册,交给他们的行政助手,用一个10位的计算器将他们标出的数字都加起来。到了月底装满这些报表的废物容器被运到垃圾处理和回收中心,这些报表的用处很快就没有了。我使用Microsoft Access 花了
13、将近两年时间为这个组开发了一个报表应用程序。我们开始在这个应用程序中规划了810个报表。但是随着时间的推移,用户开始依赖报表去执行他们的工作,他们要求用同样的报表来处理不同的排序、分组和选择基准的工作。最后,我们开发了2530个报表,其中大多数是在开始的几个原始报表上修改而成。2.3 定义的商业智能前面一节讨论了在应用程序中加入报表的重要性。报表可以回答大量的商业问题,但它只代表我们称为商业智能(BI)的一部分。BI现在已成为非常流行的工业用语。和其他的工业用语类似,它的实际意义总有很多混乱的说法。所以,我们需要澄清一下BI实际上是什么含义。对于我们来说,BI是一种能力,它可以收集信息、对信息
14、做一个判断、以及在设计者的商业中实施一个改变,然后衡量改变后的效果。图2-1中显示了BI的循环周期。图 2-1商业执行官们理解为什么拥有好的数据是重要的。他们解释说好的数据能帮助他们做出正确的决策,正确的决策意味着成功的商业。这很合情理,不是吗?如今一个非常常见的场景是想要做最好的商业,需要投资昂贵的企业资源规划(ERP)系统,这个系统可以有效地采集和存储大量的顾客、产品、以及销售信息。做到了吗?没有!在如今,得到数据和使用数据的时间间隔很短,几乎是瞬间。更为有效的数据采集技术导致了数据井和数据仓库的出现,它们由各种不同事实汇入而成。新一代的商业工作者的方式是获得信息,做出决策。他们需要工具来
15、获取有用信息、及时响应变化。仅仅获得数据是没有用的,除非它们包含商业价值,可以用于有效地做出决策。商业中的一个基本事实是采集数据的人通常不是使用数据或者需要获得数据所代表的信息的人。商业执行官、经理和分析家每天做出战略决策,可能会影响到很多人以及公司的指导方向,最终影响工业社会中人和机构从事商业的方式。这些决策很大程度由一个图中的一个柱体的相对高度或者打印在一页纸上的几个数字所驱动。拥有强大的报表工具就不需要解决这个问题。很多商业人员并不知道如何有效地使用他们拥有的产品。一个报表工具如果太复杂和难以使用,那么它就没有什么价值。这就意味着存在一些基本的挑战,比如采集全面的、准确的和有意义的数据;
16、用一种样式存储从而它可以连续表达事实;以一种精确的、无偏的形式来表示信息。在表面上,看起来像一件简单的任务。2.4 场景解救自动化系统我将为这种挑战举一个例子。几年前,我用了几个月时间为太平洋西北部的一个纸厂的操作组开发一个报表系统。这个古老的工厂位于一个遥远的小镇,很多纸厂的员工已经在那里工作了一辈子。正如纸浆和造纸工业中常见的一样,这个工厂已经几度易主,现在由一家非常大的纸业和办公供应公司所运作。随着时间推移和技术变化,一些不同的计算机系统集成到纸厂运作中;一台IBM 360和一个AS/400的系统用来管理客户订单和产量历史记录。原始的存货管理系统没有变。这是一台非常古老的、用于特定目的的
17、计算机,用一个单一的文本格式来存储它的很多数据。它的所有组件都是冗余的,并且从来不需要重大维护。在我到达之前,安装了一个Windows Server套件,包括了一个SQL Server数据库和一个从现有数据库系统复制产量和存货数据的应用程序。总公司的管理层认为他们对原材料消耗率和产品质量缺乏管理。他们想要一个报表系统,给他们显示所需要的数字,来做出对订单和纸浆生产过程的调整。随着时间的流逝,将会产生不同级别纸浆的订单。系统需要计算所需成份的数量来生成一批一般是满足一个客户的订单要求。订单将会送到生产间,员工们有新安装的控制设备,用来确保纸浆成份的准确运送。不同批次的产品以不同级别的质量不断生产
18、,管理层跟踪这些材料消耗的能力不能得到显著改善。管理层在报表解决方案上不断进行投资。他们购买了已开发的软件来了解趋势和进行数据分析,但是徒劳无功。经过了几个月时间和几十万美元的投资之后,产品质量仍然没有真正提高很多。最后,其中一个IT经理戴上安全帽,走到产品间去观察整个过程。他了解到的只是一个简单的教训:当订单到达他们的计算机工作站时,员工们正在打印和整理订单。他们抛开自动化的控制设备,仍在使用过去几十年来一直使用的上一代的人工造纸技术。这大概是因为传统和尊严,他们不打算让计算机代替他们的工作。开始的报表解决方案是优美的而且在技术上可行的。计算是准确的,而且报表的显示方式也合适。但是,这个方案
19、并不完全支持这个过程。最终需要克服文化上的障碍(如果员工想保住饭碗,要求他们必须使用自动系统),产品和过程都得到改善。一个报表仅仅和它表示的数据一样,而数据仅仅和采集的信息一样。信息仅仅和它所代表的过程一样。2.5 现有报表解决方案的挑战在过去十多年,Microsoft仅仅提供了一种拥有足够报表功能的产品。作为专为单个用户或者一个小工作组使用的桌面应用程序,Microsoft Access是一个有能力的数据库和报表解决方案。在Access 2000中,加入了Access数据项目。这个产品的扩展在一个局域网的环境下,以SQL Server为后台,可以很好地工作。在Visual Studio 6中
20、,提供了一个Visual Basic 6的集成报表工具,但它的容量最多只能达到兆的级别。这时的开发人员认为这只是Visual Studio后续版本的一个简单预览。因为对于报表缺乏一种统一的、连续的报表方案,很多开发人员被迫转而开发他们自己定制的解决方案。一个恰当的例子是在ASP.NET开发支持网站()上已经有了报表开发的项目(Reports Starter Kit)。开发人员做了一件令人震动的工作,使用ASP.NET的数据网格和数据列表控件创建一个基于Web的报表解决方案。他们甚至使用画线对象来做自己的饼状图。这有效证明了.NET是一个非常强大的编程工具。但是,它也说明了我们缺乏一个强大的报表
21、平台来补充Microsoft的第一线开发和数据库套件。在Visual Studio.NET在2002年发布时,我有一些失望,因为唯一集成的报表组件是一个限制用户数的水晶报表(Crystal Reports)。现在,在我遭到这个产品的忠实用户的反对之前,我必须说水晶报表是一个功能强大的报表工具。但是,它既不属于Microsoft的战略方向,看起来也不像Microsoft的产品或者和Microsoft的产品紧密结合。在Visual Studio上安装的水晶报表的版本只限于5个并发用户(术语并发(Concurrent)有一些严格的解释)。现在水晶报表已经再次易主(被Business Objects收
22、购),看看这将如何影响这个著名产品的方向,这是非常有趣的。特别地,过去几年中工业领域最显著的变化是在Internet上交换信息的机会和需求。以前的技术都简单地不提供访问Internet上的应用程序组件的方法。组件架构如COM、DCOM和CORBA都设计用于在安全的局域网(LAN)和广域网(WAN)上通信,这就需要大量的基础设施投入。将商务贸易伙伴和平等的区域站点连接起来通常费用太昂贵并且逻辑上是不可行的。在Web上很少存在定制报表的选项。最好情况下,一个填满数据的列表或者表格可以按照用户定制的、服务器端的解决方案,使用活动服务器页(ASP)或者通用网关接口(CGI)。每一页必须精确设计和编写脚
23、本,需要花费几十个,有时甚至上百个小时编程。随着最近Web的成熟,新一代移动设备发展起来,可以将用户和公司资源、电子邮件、文档和数据库连接起来。这些桌面的、手持的、掌上的甚至戴在腕上的设备为数据表示产生了新的机会和挑战。为了获得有用和可读的信息,数据必须在现有的通信通道(比如公司网络和Internet)可以获得、易于访问、安全和有不同的格式,可以在现有的文档阅读器或者浏览器中查看,兼容不同的设备。还记得我提到过需要支持不同的操作系统(OS),应用程序,也许,不用在客户设备上安装任何定制的软件?这些就是挑战。2.6 SQL Server报表服务如何面对挑战?SQL Server报表服务是服务器端
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL_Server_2005 报表 服务 高级 编程 第二
限制150内