第Ⅰ部分 开始
第1章 从头开始
SQL Server 2000 Reporting Services是Microsoft进入基于Web的报表领域的工具。使用Reporting Services的**个版本可以很容易地与遍布全球的管理人员、同事、商业伙伴和客户共享商业信息,通常这些共享商业信息被称为“商业智能”。在互连的工作环境中,报表解决方案应提供企业级、**级、甚至是***的通信。
SQL Server 2005 Reporting Services建立在原来版本成功的基础上。几乎SQLServer 2005的所有其他方面都代表一种全新的平台,且Reporting Services为原先的版本添加了坚实的基础,使得这个产品更加**。2005版本提供了额外的报表制作(report—authoring)环境,改善了报表开发的性能,并提高了发布报表的能力。
在Microsoft内部开发期间,Reporting Services的代码名被称为Rosetta。这个名称来自于Rosetta Stone,它是1977年发现的一块石板,上面刻有古埃及的象形文字和希腊文。这块石板为现��世界解开埃及象形文字之谜提供了重要的信息。正像历经1400多年历史的Rosetta Stone为我们带来关键信息那样,Rosetta或ReportingServices也被设计用来为解开商业成功之谜提供关键的信息。
人们*初的构想是把Rosetta项目作为SQL Server 2005的一个特性。然而,当Microsoft告诉那些潜在客户关于Rosetta新的特性并发布**个测试版本时,反应很强烈:“我们需要这个产品,并且现在就要!”由于这样的反应,Microsoft决定不再等到2005年才发布Rosetta,而是让它成为独立的产品,同SQL Server 2000一起使用。
Reporting Services让人兴奋的特性有哪些呢?首先,Reporting Services提供了从多种不同的数据源创建不同类型报表的环境。而且可以使用制作工具来预览和改进报表。其次,一旦完成报表,该报表就部署到Report Server上,这样就使得该报表能够通过Internet在结构化的**的环境中使用。*后,Reporting Services的报表管理和发布部分对于有SQL Server 2000或SQL Server 2005授权的任何人来说,都可以免费使用。
为什么这个特性集能让人们如此兴奋?当您把这些特性集合在一起时,其结果就是一个能方便创建、管理并能及时使用商业智能的产品。
1.1 共享商业智能
因为您正在阅读本书,所以您可能是对公司很重要的某类信息的管理者。您可能拥有销售、财政、生产、交付方面的信息—一或者其他领域的信息。所有这些信息组成了商业智能,它们是保持如今的企业、学院以及政府实体独立运行的必需信息。
1.1.1 共享的必要性
除了要维护这些信息,还需要同他人共享这些信息。共享的必要性我们在幼儿园时就学到过:“如果我们学会分享,这个世界将更加美好。”这也有可能是由上级经理或主管提出的。下面介绍一些常见的情况。
1.生产经理
公司的订单录入系统每4个小时自动更新库存数据库。在公司的业务过程中,一些订单会需要大量的某种产品。由于这个原因,应确保生产经理能够及时地了解库存的变化,这样他可以相应地调整生产。
因此,生产经理需要您为他提供在工作期间内发生的每一次更新库存数据库后立刻生成的更新库存报表。他想要这份报表能尽快传到他的计算机里,这样他可以在一个小时的更新时间内对生产进度做出调整。他也希望能打印这份报表,这样就可以在报表上添加自己的标记。
注意,公司的库存系统在位于伊利湖畔的克利夫兰,而生产设备却在波特兰1
2.销售副主管
您正在负责维护保存客户信用卡额度信息的数据库。公司数据库会每天更新该信息。公司总部每周都会打印一份包含所有客户信用信息的报表,并把该报表通过邮件发给每个销售代表。
销售副主管要求这份信用信息能更加及时地为销售人员所用。他要求这份报表可以在国内的任何地方通过Internet获得。这样,当销售代表可以访问网络时,他们能够打印这份报表,并随身携带。他还要求这份联网的报表尽可能地实时更新。
3.**执行官
公司的**执行官(CEO)有着事必躬亲的管理风格。她喜欢参与决策制定过程的各个方面,因此需要别人很好地通告她有关公司各方面的事情。这些信息包括公司的资产负债表、库存和生产情况以及公司的股价。
CEO希望在她每天上午7点到达办公室时,所有这些信息都已汇总在笔记本电脑上。信息必须是可以打印的适当格式,并且能在每天上午9点的会议中与副主管们共享。当您寻找这个问题的解决方案时,请记住,该项任务没有分配任何预算——但这份工作要立即执行。
1.1.2 可能的解决方案
每天,公司业务都会碰到这些情况以及很多与这些情况类似的其他情况。在这个互相连通的世界中,这些类型的请求并非毫无道理。即使发生了这种情况,也并不意味着能够很容易完成这些请求。
1.HTML解决方案
当您正在寻找在Internet之间传递信息的方法时,**个候选的解决方案当然是HTML。可以使用多种工具来创建数据驱动的HTML页面,包括Microsoft的ActiveServer Page、Macromedia的ColdFusion、任何一种Java环境以及PHP等。
以上每一种环境都能很好地创建动态的Web内容。然而,这些都需要时间以及一定程度的编程知识。随着*后期限的临近,你可能没有时问创建自定义的Web应用程序来解决每个问题。况且如果你已习惯了使用Crystal报表或者Access报表来操纵数据,那么很可能你不打算自己动手开发应用程序,而且在未来的任何时候也不愿意这么做。
即使为每一种情况都创建了应用程序,还有一个重要需求是:信息必须可打印。通常,HTML在屏幕上的浏览器窗口中显示很好,但是要打印时就会产生问题。内容可能太宽而不能适应页面,以及没有对页面进行换行的控制。事实上,页面可以在一行文本的中问换行,其中上面一半的字符在一页上,而下面另一半的字符在下一页上!这种格式化的问题会让销售代表以及生产经理难以阅读输出的报表。如果让CE0带着这样的报表出席董事会可能会让您失业。
下面将介绍另一种选择!
2.PDF解决方案
因为控制打印输出的能力很重要,所以应该考虑Adobe PDF。PDF文件在屏幕上显示和打印出来的效果都很不错。可以控制页面发生换行的位置并确保美观。然而,PDF文件需要克服几个问题。
首先,需要一些实用程序来产生PDF格式的输出。这可以是Adobe Acrobat的完全版本以及其他一些实用程序。一旦达到了这个要求,必须创建包含所需数据的文档。这通常是由报表工具或开发软件创建的报表。创建完文档后,使用导出函数或特殊的打印机驱动程序把它转换为PDF文档。
当创建完PDF文档时,可以把它复制到Web站点供Internet访问。然而,当PDF文档创建完后,它就成了静态实体。每当从Web站点请求这个文档时,都不需要再次查询数据库。为了维持*新的版本,这个PDF文档必须在每次源数据修改时重新创建。另外,也可能必须回到编程环境中,以控制用户对Web站点上该PDF文档的访问。
可能有一种更好的方法。
3.第三方报表环境
使用其他公司的报表环境当然能克服前面两种选择的限制。而且不需要大量的编程工作就可以用这些第三方软件来建立报表。也可以动态产生像Adobe PDF格式的输出,这会在屏幕上以及打印输出上表现良好。
第三方报表环境的问题在于其成本。一些产品可能需要花费几千或几万美元。这很有可能会打破预算——如果确实有预算——就像前面讨论的报表项目那样。
1.1.3 Microsoft Reporting Services
现在您可以明白公司对Reporting Services如此兴奋的原因了。它能为所有这3种有严格要求的客户——生产经理、销售副主管和**执行官提供**的报表服务,却不具有前面考虑的那些可能解决方案的缺点。
1.不需要编程
Reporting Services提供了从数据库中拖出信息来创建报表的简单方法。可以使用两种不同的工具制作报表。即使您不太了解数据库和查询语言,ReportBuilder也能为您创建基本的报表。ReportDesigner可以让您真正地了解Reporting Services的能力,从而表达复杂的信息。在和SQL Server 2005一起发布的Business IntelligenceDevelopment Studi0中可以找到Report Designer,也可以在Visual Studi0 2005专业版或以上的版本中找到它。
即使都是开发环境,但Business Intelligence Development Studio是为了开发SQLServer Analysis Services和数据挖掘的解决方案,而Visual Studio是为了创建基于.NET Framework的软件。您不需要为创建Reporting Services报表而学习编程。然而,如果您对编程感兴趣,在第7章和第8章中可以学习一些简单的Visual Basic表达式,用它们来为报表的显示增添趣味。可是,要注意到这些表达式并不是创建有用的报表所必需的。这些表达式非常简单,甚至是Visual Basic的初学者也可以轻松地掌握。
2.带查看器的服务器
Reporting Services包含和浏览器一起使用的报表查看器(report viewer)。这个报表查看器使用动态HTML为每一份报表提供高质量的显示。报表用若干页显示,这些页面中的VCR按钮控件提供页面之间的导航功能。
因为报表查看器使用动态HTML,所以在计算机上不需要下载任何额外的程序。不需要安装ActiveX控件,不需要下载Java applet。任何支持HTML 4.0的浏览器都能查看报表。
3.与打印机协作良好
除了可以使用动态HTML在浏览器中显示报表以外,Reporting Services可以用多种不同的格式来呈现报表。这些格式包括Adobe PDF、TIFF以及Microsoft Excel电子数据表。这些格式显示在屏幕上以及打印在纸上都很美观。
即使打印的报表以PDF或TIFF输出,也可以进行配置,使得在每次访问报表时重新查询数据库。这保证了报表中总是*新的数据。
4.特殊的交付
Reporting Services提供了多种不同的方法将报表交付给*终用户。ReportManagerWeb站点使得用户能够通过Internet访问报表。它还包括**特性,这保证了用户只能访问他们能够访问的报表。
用户还可以定期地订阅他们想要获得的报表。Reporting Services会把报表的副本作为电子邮件的附件定期发送给每一个订阅者。作为选择,Reporting Services管理员可以将报表的副本作为电子邮件发送给邮件列表上的多个接收者。如果这还不够,报表还可以嵌入.NET应用程序。
5.价格适当
对于任何使用SQL Server 2005授权版本的人来说,Reporting Services的价格都比较合适。它是免费的!只要Report Server安装在SQL Server数据库引擎所在的计算机上,那么SQL Server 2005的授权就都适用。有了这样单独的服务器体系结构,使用Reporting Services与其他人共享报表时就不会花费您额外的费用。
6.使用Reporting Services进行救援
此处再看一下前面考虑的3个场景——生产经理、销售副主管和**执行官。如何使用Reporting Services的特性来满足他们每一个人的需求?
生产经理想要一份显示当前库存的报表。从数据库查询库存数据并把结果输出到报表中当然没有问题。接下来,他想要一份在工作期间每次更新库存的报表的*新副本。生产经理可以订阅库存报表,作为订阅的一部分,他要求上午8:15、下午12:15和4:15交付新报表。*后,库存系统在克利夫兰,但是生产经理在波特兰。因为报表的订阅可以通过电子邮件交付,所以可以在克利夫兰建立ReportingServices服务器,从本地数据源生产报表,然后将报表通过电子邮件发送到波特兰。
销售副主管的解决方案更加直观。他想要一份关于每位客户的信用卡信息的报表,没问题。接下来,他希望销售人员能够通过Internet得到报表。为了做到这点,可以在Report Manager的w曲站点发布报表。甚至还可以设置**性,这样只有拥有正确用户名称和密码的销售代表才可以访问报表。
另外,销售副主管还希望打印出来的报表美观。在开发层面上,这可以不用额外的工作来完成。当销售代表从Web站点获得报表时,这些报表将作为HTML显示。在浏览器中的显示还可以,但是打印到纸上就未必美观。为了使每次打印到纸上的报表美观,销售代表只需要把报表导出为PDF或TIFF格式,然后显示并打印导出的文件即可。
对于CEO,您可以建立一份报表或者一系列报表来反映公司的状况。这样,她能通过报表来了解业务各个方面的情况。为了在上午7点时确保她的笔记本电脑上有报表,我们可以建立订阅,这样能够运行报表,并把它们作为电子邮件在每天上午的6:15发送给她。
*后,由于CEO想要打印这份报表并和公司的副主管共享,可以确保订阅服务将报表以PDF或TIFF的格式交付。*棒的是,由于已经有了SQL Server 2005授权,所以Reporting Services解决方案不会给公司带来任何花费。至此,您已经得到了大老板的很多奖金,她将让您在年底成为公司的**信息官(Chief Information Officer)!
……