Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2594027
  • 博文数量: 2110
  • 博客积分: 18861
  • 博客等级: 上将
  • 技术积分: 24420
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-05 18:23
文章分类

全部博文(2110)

文章存档

2011年(139)

2010年(1971)

我的朋友

分类: WINDOWS

2010-04-13 20:52:33

 在这篇文章中,我们将介绍发布所创建的SQL Server 2005 Express Edition报表的过程,特别关注于内容管理。

  当一个报表加载进商业智能开发套件(以an .rdl文件以及与它关联的共享数据源的形式,组成一个项目或解决方案)时,你能够将它部署到本地报表服务器上。为了做到这一点,你需要确保这个报表的属性正确地反映了指定的目标虚拟目录的所在位置。要确定是否是这种情况,启动报表服务配置管理器(确保你是使用提升的权限来调用它,对于Windows Vista,可能要求使用Run as administrator选项)并指向Instance Selection 对话框中的SQL Server 2005 Express Edition本地实例。当窗口出现时,切换到Report Server Virtual Directory部分并注意在Name:文本框中出现的值(这在我们的例子中很可能会被设置为ReportServer$instance_name,instance_name代表指定的SQL Server安装)。接下来,切换到商业智能开发套件,定位到Solution Explorer窗口中的项目节点,并显示它的Property页面。在Configuration Properties的General部分,调整TargetServerURL的值(如果需要的话),使得它匹配你刚刚指定的报表服务器虚拟目录的名称(结果就是项)。注意,在相同的对话框中,你还可以选择指定一个任意的TargetReportFolder和TargetDataSourceFolder(它们影响报表管理器网站上的报表位置),以及指定是否OverwriteDataSources(如果有已存在的报表服务器数据源,它不同于开发过程中所使用的报表服务器数据源,那么它应该设置为False)。此外,你可以利用多个配置(最常见的,包括Debug、DebugLocal和Production),以便在不同的开发目标间快速地切换而不必修改项目属性。最后,请记住,可能有必要(例如,当利用示例报表时)去调整Solution Explorer中出现在Shared Data Sources下面的数据源连接字符串(.rds文件),使得它们指向存放在SQL Server 2005 Express实例中的本地数据库。

  当所有要求的变更都完成时,使用你的项目中上下文敏感菜单中的Deploy项(注意,每个单独的报表也可用这相同的选项)来使其在报表服务器上可用(在这里它可由终端用户通过报表管理器虚拟目录访问到)。假设你具有足够权限(我们在后面会详细讨论这个问题),那么这些动作将发布这个项目的报表和与它们相关的数据源到报表管理器站点上(位于 URL),可以通过以你之前指定的TargetReportFolder and TargetDataSourceFolder参数的值为名称的链接访问到。(要监控这个部署的进程,观察商业智能开发套件中的输出窗口中显示的信息)。

  为了检查输出,启动Internet Explorer(确保你是在发布这些报表所使用的权限用户帐户的安全上下文中运行它)并转到 URL的报表管理器虚拟目录,它是被指定为SQL Server Reporting Services的首页。它的内容被划分为两个标签页,标签名为Content和Properties。现在,我们将关注于其中的第一个,它使得你可以组织展示给终端用户的报表层级。页面上应该包含所有发布的最新项目,以及它们的报表和数据源(它们的放置具体取决于你在商业智能开发套件中指定的TargetReportFolder和TargetDataSourceFolder项目属性的值,尽管你可以在部署完成之后很容易地修改报表管理器站点布局)。所有新发布的项都标有!NEW标签。导航是很直观的,使你可以通过项目层级进入到所需的报表。

  另一个填充报表管理器站点(以及报表服务器数据库)的方法是调用它的Web界面上可用的选项(这是很方便的考虑,它消除了对商业智能开发套件的依赖)。每一个内容页面都通过它们共同的、工具条上出现的命令按钮来提供了相应的功能。New Folder是用于建立报表的一个定制层级。它们的定义可以通过Upload File按钮导入,有效地将它们添加到报表服务器数据库中去。(顺带一提,同样的机制可以用来使用其它类型的资源(例如图片文件)来填充报表管理器页面)。为了确保一个以这种方式组装的报表所可能需要的所有数据源也都有,切换到详细视图(通过点击报表管理器页面右上角的Show Details)并点击报表名称旁的Edit字段中出现的图标。这将显示Properties标签页的内容,以及一个到Data Sources的链接。跟着它,你将能够确定是否某个有效的数据源是存在的。如果不是这样,那么你可以利用已有的一个共享数据源(在同一个页面上的Browse命令按钮使得你可以在报表管理器站点层级中定位到它们)或定义一个定制的数据源(这是直接从Properties标签页的Data Sources部分或通过调用报表的Content页面上工具条中的New Data Source选项来完成的)。在这种情况下,你需要指定一个连接类型(在我们的例子中唯一可选的是Microsoft SQL Server)、一个连接字符串(以Data Source=localhost\instance_name;Initial Catalog=database_name的形式)和报表执行所在的安全上下文。这些选项的最后一个使得你可以在运行这个报表的用户所提供的凭证、安全地存储在报表服务器数据库中的凭证(你直接在同一页面中指定的文本框中直接输入)、Windows集成安全以及匿名连接中选择(通过一个可定制的提示来请求)。

  也可以使用定制.NET脚本来部署报表(以及它的数据源),这个脚本可以通过SQL Server 2005 Express Edition报表服务所带来的rs命令行工具来调用。(注意,这个工具是对报表服务器执行任意代码的一个简单工具,它还有其它潜在用途)。要在现在讨论的环境中研究它的目的,我们将利用SQLServerSamples.msi中所包含的PublishSampleReports.rss文件,它在Program Files\Microsoft SQL Server\90\Samples\Reporting Services\Script Samples文件夹下。为了部署它,从命令提示中运行rs -i PublishSampleReports.rss -s (instance_name是本地SQL Server 2005 Express Edition实例的名称),而登录是以一个特权用户登录到一个目标计算机上。作为结果,所有的AdventureWorks示例报表(以及它们相应的数据源)都将出现在报表管理器网站上。

  通过点击报表管理器页面右上角的Show Details链接,你应该可以看到关于每项的其它数据,标识它们的类型、描述、最新的修改和执行的日期,以及执行最近一次编辑的用户名称。还有几个操作是你可以从这个界面调用的。特别是你可以删除或移动单个文件夹、报表和共享数据源。通过点击Edit字段中的一个图标,你可以改变一个相应项的显示名称或描述,以及在列表显示中隐藏它(在一个报表页面的Properties标签页中)。在这个页面上,还可以加载XML格式的.rdl文件形式的报表定义(通过Report Definition部分的Edit链接),随后更新它的报表服务器上的版本(通过Update链接)。

  点击一个报表链接来触发它的生成,渲染在同一浏览器窗口中显示的输出(作为结果,View标签页替代了Content)。注意,不像在SQL Server 2005成熟的版本中实现的报表服务,它没有计划报表执行的功能(这个功能是通过Properties标签页上的Execution Properties部分来暴露的,在我们落后的报表管理器实现中是没有的)。在HTML Viewer界面中所显示的与报表的交互通过对工具条的使用而得到了简化,它包括如分页、缩放它的视图、搜索、导出(以Acrobat PDF或Excel的形式)、刷新和打印等功能。

阅读(388) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~