SQL Server报表服务是为报表设计人员和编程人员定制的解决方案。这本指导手册将帮助读者迅速具备设计、部署、管理甚至定制报表解决方案的能力。如果读者没有编程经验以及通过VB、C#、ASP.NET扩展报表的知识,也可以通过学习本书来创建功能强大的报表。\r\n 本书带有大量详细的示例,阐释了创建报表、设计报表解决方案,以及开发与多种不同平台交互的部署策略,将帮助读者充分利用这个革命性的工具。另外,读者还将学会怎样在实践中通过实现自己的安全体系结构或者增加定制的数据访问,来扩展报表服务的每一项功能。
第Ⅰ部分 开始\r\n 第1章 报表服务可以做什么 \r\n 1.1 我们所了解的 \r\n 1.2 应用程序和报表技术 \r\n 1.3 解决方案类型 \r\n 1.4 设计报表 \r\n 1.5 简单的应用程序集成 \r\n 1.6 无缝的应用程序集成 \r\n 1.7 管理和定制报表服务器 \r\n 1.8 小结 \r\n 第2章 Microsoft SQL Server报表服务2005简介 \r\n 2.1 传统的应用程序报表 \r\n 2.2 当今的报表需求 \r\n 2.3 定义的商业智能 \r\n 2.4 场景——解救自动化系统 \r\n 2.5 现有报表解决方案的挑战 \r\n 2.6 SQL Server报表服务如何面对挑战 \r\n 2.7 商业智能解决方案 \r\n 2.8 谁使用报表,为什么使用 \r\n 2.9 报表解决方案的替代品 \r\n 2.10 报表生命周期 \r\n 2.11 报表交付应用程序类型 \r\n 2.12 系统需求 \r\n 2.13 报表服务组件 \r\n 2.14 管理工具 \r\n 2.15 设计报表 \r\n 2.16 使用Business Intelligence Development Studio \r\n 2.17 扩展报表服务 \r\n 2.18 报表管理器 \r\n 2.19 报表定义语言 \r\n 2.20 小结 \r\n 第3章 报表服务体系结构 \r\n 3.1 报表生命周期 \r\n 3.2 报表服务2005 \r\n 3.3 小结 \r\n第Ⅱ部分 报表设计\r\n 第4章 基本报表设计 \r\n 4.1 使用报表向导 \r\n 4.2 报表定义语言 \r\n 4.3 规划可扩展性 \r\n 4.4 报表项和数据域 \r\n 4.5 求部分和 \r\n 4.6 格式化 \r\n 4.7 分页控制 \r\n 4.8 打印注意事项 \r\n 4.9 小结 \r\n 第5章 设计数据访问 \r\n 5.1 关系数据报表 \r\n 5.2 查询基础 \r\n 5.3 筛选技术 \r\n 5.4 分析数据用报表 \r\n 5.5 使用其他数据源 \r\n 5.6 最佳实践 \r\n 5.7 小结 \r\n 第6章 高级报表设计 \r\n 6.1 剖析文本框 \r\n 6.2 分组数据 \r\n 6.3 数据区域 \r\n 6.4 使用表创建表格报表 \r\n 6.5 列的放置和缩进 \r\n 6.6 页眉和页脚 \r\n 6.7 使用表达式生成器 \r\n 6.8 下钻报表 \r\n 6.9 创建文档结构图 \r\n 6.10 链接和钻取报表 \r\n 6.11 递归关系 \r\n 6.12 子报表 \r\n 6.13 设计矩阵报表 \r\n 6.14 图形报表 \r\n 6.15 自定义字段 \r\n 6.16 条件表达式 \r\n 6.17 使用自定义代码 \r\n 6.18 为移动设备设计报表 \r\n 6.19 最佳实践和提示 \r\n 6.20 小结 \r\n 第7章 报表解决方案模式和诀窍 \r\n 7.1 报表项目需求指导 \r\n 7.2 报表诀窍 \r\n 7.3 小结 \r\n第Ⅲ部分 用报表生成器支持最终用户报表\r\n 第8章 报表服务的报表模型 \r\n 8.1 开始 \r\n 8.2 建立报表模型 \r\n 8.3 从分析服务数据库中创建报表模型 \r\n 8.4 小结 \r\n 第9章 报表生成器 \r\n 9.1 生成报表模型 \r\n 9.2 使用报表生成器 \r\n 9.3 管理 \r\n 9.4 小结 \r\n第Ⅳ部分 管理报表服务\r\n 第10章 报表管理 \r\n 10.1 报表服务器内容 \r\n 10.2 管理内容项 \r\n 10.3 保证报表服务器内容安全 \r\n 10.4 站点设置 \r\n 10.5 管理报表 \r\n 10.6 处理数据源 \r\n 10.7 管理报表执行 \r\n 10.8 快照和历史 \r\n 10.9 报表定时 \r\n 10.10 交付报表 \r\n 10.11 报表订阅 \r\n 10.12 数据驱动订阅 \r\n 10.13 自动化内容管理 \r\n 10.14 创建脚本 \r\n 10.15 小结 \r\n 第11章 报表服务器管理 \r\n 11.1 部署报表服务 \r\n 11.2 配置工具 \r\n 11.3 备份和恢复程序 \r\n 11.4 监控和性能 \r\n 11.5 小结 \r\n第Ⅴ部分 报表服务集成与报表服务Web服务\r\n 第12章 在定制应用程序中集成报表服务 \r\n 12.1 URL访问 \r\n 12.2 以编程方式显示 \r\n 12.3 使用ReportViewer控件 \r\n 12.4 SharePoint Web部件 \r\n 12.5 小结 \r\n 第13章 扩展报表服务 \r\n 13.1 通过接口的扩展 \r\n 13.2 创建一个定制数据处理扩展 \r\n 13.3 小结\r\n附录\r\n 附录A 移植Access报表 \r\n A.1 控件 \r\n A.2 属性设置 \r\n A.3 函数 \r\n A.4 报表元素 \r\n 附录B 报表服务对象模型 \r\n B.1 公共属性 \r\n 附录C Transact SQL命令语法参考 \r\n C.1 Transact-SQL命令、子句和谓词 \r\n 附录D Transact SQL系统变量和函数 \r\n D.1 系统全局变量
前 言 I
很多人问过我,“为什么报表如此平凡,你还这么热衷于它?”对于我来说,有关报表的最激动人心之处就在于它是如此普遍。像基本的交通运输一样,每个人都在以这样或那样的方式使用它。报表是一件用来传达信息的艺术品,但不同于常规的艺术品,消息可以随着驱动它的数据而改变。可以帮助数百万人和公司并为他们所用,这就是我着手编写程序并最终加入Microsoft的原因之一。没有其他公司可以像Microsoft一样通过发布伟大的产品来影响如此多的人。
报表是一个非常广泛的主题,范围包括从装箱单、电话费账单到即席分析和Excel电子表格。在设计Microsoft SQL Server报表服务时,我首先对报表下一个简单的定义:报表是一个信息交付平台。当然,这个定义也非常广泛,它确实允许我们将精力集中在设计上,同时留给我们很大的空间在后续版本中进行扩展。这本书将帮助读者了解报表服务的强大能力,并充分地利用其功能。
信息不仅仅是数据;它是转换成有用信息的数据。转换过程非常重要。任何工具都 可以阅读并显示该数据;人们为完成工作而真正需要的数据是经过慎重选择的、正确的 和密切相关的信息。有许多工具可以让用户访问数据,建立“视图”和“报表”。但是,这些用户常常不了解数据存储的所有细微差别,从而会产生不准确的结果,或者一不小心就会影响数据引擎的性能。报表服务以官方源的方式运行,从而使每个人都使用正确的同一版本。
将来,Microsoft计划通过集成信息权限管理(Information Rights Management)推动其更进一步发展,从而使得信息不仅来自单一源,而且可以对其进行认证,它还会过期,甚至在数据交付给最终用户后仍可进行访问控制。数据常常不是存在一个数据库中甚至来自于一个数据库,这对于我们这些处理公司数据的工作人员来说是个令人痛苦的事实。只有极少数的报表(或者能提供充分见解的报表集)是来自单一数据源的。建立多种类型的数据集市(data mart)或数据仓库是最佳的解决方案,但常常因时间、政策或预算的限制而不可能实现。报表必须能够从任何一个数据源获取数据,并将所有数据结合在一份报表内。
在需要信息而得不到它的时候,这些信息就会显得弥足珍贵。交付信息比只处理信息和加工信息更重要;在用户需要时,它能在用户拥有的设备上提供任何格式的信息。今天最常见的案例是普遍存在的用户利用某个浏览器通过HTML进行在线访问。如果计算机连接到了服务器上,这会是完美的。但是众所周知,没有什么事情是完美的。当我们在飞机上、在汽车里、陪同客户、在游戏中、在生产基地等类似的场合时,我们需要报表。我们同样需要报表的多种功能:交互性、点对点打印、应用程序集成——类似MS Excel的“如果怎么样,那么会怎样”的场景和附加分析、经由PDF的通用访问等。单一的格式和单一的交付渠道是不够的,但是如何知道自己需要哪一种选择呢?报表服务可令人远离这些选择。所有的报表可以以任何渠道分发或者以任何格式呈现。报表设计独立于报表的使用方式。在给定了指定格式或者所需渠道的约束后,系统的责任是提供尽可能准确的报表。
建立一个平台与建立一个解决方案是不同的。实际上,在很多情况下,二者的目标是完全相反的。如果开发人员和管理员已经访问了产品的所有方面,那么这个平台是成功的。他们要能够优化、扩展、限制、嵌入和替代产品的某些部分来满足需求。这意味着所有API都是可用的并且编制了文档,所有格式都是开放的和描述清楚的,而且每个组件都是可配置的或可替代的。当然,软件设计往往因多种权衡而存在很多限制,在建立报表服务时,这是努力的目标。与Windows、SQL Server或Visual Studio非常类似,报表服务是为了使开发人员能够基于一个坚实的基础创建报表,在相当短的时间内以更多的功能来满足商业需要,而且无损其灵活性和自创报表的能力。
展望未来,Microsoft将增加数不清的功能和方案,使平台的功能更加强大,同时只需要很少的或者甚至不需要进行内部开发。我在本书中提到了其中一些功能,但还有很多没有考虑到的地方。
我们期待收到所有用户的来信,告诉我们对他们来说什么是重要的,我们怎么做能够使设计、创建和操作他们的信息交付系统变得更加容易、快速并且(我希望)具有趣味性。
Jason Carlson
Microsoft SQL Server报表服务产品部部门经理
Jason Carlson是SQL Server 报表服务的产品部门经理。他在1996年加入Microsoft公司,担任Visual Source Safe and Repository的项目经理。1997年,Repository团队加入SQL Server团队,他成为SQL Server 元数据服务的开发经理。2001年,他创建了一支团队开始为报表服务的第一个版本工作。在加入Microsoft以前,Jason拥有和运营一家独立软件开发公司。这家公司为卫生保健和电信业提供咨询和垂直的软件解决方案。
前 言 II
敏捷性。在今天的商业中,必须每天或每周(而不是每月或每季度)就做出关键决策。业界领先的公司意识到若要提高企业的竞争响应速度--他们公司的敏捷性--需要将尽可能多的决策权下放到第一线员工手中。在如今要求更快地做出更好决策的商业气候下,实时竞价系统、反向拍卖、现货精确成本计算、按照订单生产、全球劳动力市场和全球化只是其中的一些发展趋势。
为了在这个新模式中获得成功,员工们要尽可能地获取最优信息。信息要准确、及时和可靠,必须能够满足他们的需要。无论员工们通过聪明地开辟新市场来最大化收益,还是通过精明地采购来最小化支出,他们都必须掌握正确的信息。
Microsoft 的SQL Server报表服务的发布在商业智能界树立了一个重要的里程碑:信息真正可供大众访问。通过将报表功能直接创建在Microsoft企业数据平台SQL Server上,软件开发人员和信息架构师现在可以依靠这个高质量、可伸缩和健壮的体系结构来创建他们的报表。
在过去的20年,商业智能(BI)在企业中的使用越来越深入。以前,一些非常熟练的分析师集中在公司象牙塔的高层,现在BI已经为处于现今公司第一线的生产线经理、部门主管和知识工人所掌握。
过去,可靠的报表系统非常昂贵,只有在可以实现最大收益的地方,公司才被迫实施健壮的报表系统。Microsoft的长期目标是通过激励使用来降低信息技术的成本,这在SQL Server报表服务的授权模型中再次显现出来。这个技术授权给目前已经拥有SQL Server授权的任何人,所以不需要任何额外的费用。它对于软件开发人员和类似用户是一种非常大的发展;它会极大地提高详细、准确、及时的报表的使用和分发,从而推动高质量的BI在企业中的发展。
在这本优秀的书籍中,作者带领我们全面学习SQL Server报表服务,涵盖了从实际的报表基础知识到为BI解决方案架构师、设计人员和开发人员编写的报表解决方案的发布和管理;它必然是一种极有价值的资源。
David Cunningham
总裁兼CEO,Dundas Software
Dundas Software授权Microsoft在SQL Server 2000和2005报表服务中使用图表和图形制作技术。作为附加产品,Dundas还为报表服务提供了额外的数据可视化图表和规格扩展。
XVI
SQL Server 2005报表服务高级编程
XV
简 介
无封面