在sps2003的时候就做Reporting Services报表在sps里显示,简单的使用网页查看器或者自己编写一个webpart来显示报表,基本就是用一个iframe来做。还有一个reporting services自带的报表显示的webpart(RSWebParts.cab),在C:\Program Files\Microsoft SQL Server\[80][90]\Tools\Reporting Services\SharePoint下可以找到,使用sharepoint的命令行STSADM.EXE -o addwppack来安装,然后在sharepoint里会有ReportView和Report Explorer两个webpart可以用。sps2003和moss2007都是用的一个RSWebParts,并没有随版本升级,我在使用中发现这个webpart经常有的的属性不能正确保存或者别的情况,而且我个人感觉还不如使用网页查看器……
不论是使用网页查看器还是ReportView,都是很多时候界面非常的难看,而且每次打开页面都需要再次登录来通过报表服务器的验证,令人深恶痛疾,有人通过写代码模拟或者通过xmlhttp去post来解决这个问题,不过这也不是最好的方法,而通过SSRS和MOSS的集成就可以解决这个问题了。
还有,SSRS的安全和权限方面,虽然SSRS自带的功能基本就可以实现我们的要求,但是在跟SharePoint集成之前,要做到跟SharePoint安全和权限的紧密结合是一件让人烦恼的事情。而通过与SharePoint集成,报表服务将被SharePoint接管,自然会继承sharepoint的安全和权限,将报表文件上载到 SharePoint 库,也自然的有了文档管理和协作,版本控制等功能,同时,可以在 SharePoint 站点的自定义应用程序页中管理报表、模型、数据源、计划和报表历史记录……这些,都是在SharePoint中完成的。集成后部件库中也有了一个非常好用的报表查看器 Web 部件:SQL Server Reporting Services Report Viewer。
前些天对客户的服务器场环境【前端(NLB)×2+后端×1+SQL×2+SSRS×1】下做了一次集成,所以下面主要是讨论服务器场环境下做集成的一般步骤和一些注意的地方,让兄弟们在搞集成的时候会稍微轻松点^_^
(单服务器环境的集成可以参考 Sharepoint Server与Reporting Services整合配置 Part1 Part2,这里讲的挺详细,而且有截图,一目了然。 )
不论是使用网页查看器还是ReportView,都是很多时候界面非常的难看,而且每次打开页面都需要再次登录来通过报表服务器的验证,令人深恶痛疾,有人通过写代码模拟或者通过xmlhttp去post来解决这个问题,不过这也不是最好的方法,而通过SSRS和MOSS的集成就可以解决这个问题了。
还有,SSRS的安全和权限方面,虽然SSRS自带的功能基本就可以实现我们的要求,但是在跟SharePoint集成之前,要做到跟SharePoint安全和权限的紧密结合是一件让人烦恼的事情。而通过与SharePoint集成,报表服务将被SharePoint接管,自然会继承sharepoint的安全和权限,将报表文件上载到 SharePoint 库,也自然的有了文档管理和协作,版本控制等功能,同时,可以在 SharePoint 站点的自定义应用程序页中管理报表、模型、数据源、计划和报表历史记录……这些,都是在SharePoint中完成的。集成后部件库中也有了一个非常好用的报表查看器 Web 部件:SQL Server Reporting Services Report Viewer。
前些天对客户的服务器场环境【前端(NLB)×2+后端×1+SQL×2+SSRS×1】下做了一次集成,所以下面主要是讨论服务器场环境下做集成的一般步骤和一些注意的地方,让兄弟们在搞集成的时候会稍微轻松点^_^
(单服务器环境的集成可以参考 Sharepoint Server与Reporting Services整合配置 Part1 Part2,这里讲的挺详细,而且有截图,一目了然。 )
集成需要的条件:
- Reporting Services SP2,打了sp2后可以在SSRS的配置管理器中看到SharePoint集成一项。
- Reporting Services 外接程序,SSRS与WSS/MOSS通过外接程序通讯,所以,如果你的报表服务器部署在一台单独的机器上的话,还需要安装相应的WSS或者MOSS的对象模型。
- 其它补丁。
集成操作的一般步骤
如果报表服务器部署在一台单独的机器上,保证安装有WSS或者MOSS的web前端。
- 运行安装程序,安装类型选择“高级”,“服务器类型”选择“Web前端 ”
- 配置向导中,“连接到服务器场”选择“连接到现有服务器场”,“高级设置”选择“请勿使用此计算机承载网站”。
- 加入服务器场后,可以在管理中心中将此前端的所有服务都停止。
打开Reporting Services配置管理器配置SSRS。
- “数据库安装”页,新建一个SSRS数据库或者更改模式,记得选中“创建SharePoint集成模式的报表服务器数据库”
- “报表管理器虚拟目录”不需要配置,集成后,“报表管理器虚拟目录”将不可用。
- 对于服务器场部署,服务标识建议使用域用户帐户。
- 如果使用的是为特定端口配置的默认网站,需要改一下RSReportServer.config 中的UrlRoot节点。
在 SharePoint Web 应用程序上安装 Reporting Services 外接程序
- 服务器场配置中具有多个 SharePoint Web 应用程序,则必须在具有 Web 前端的每台计算机上都安装 Reporting Services 外接程序。
在所有计算机上都安装了此外接程序后,在应用程序管理页中可以看到Reporting Services项
- “管理集成设置”,输入SSRS的URL和身份验证模式。如果将 SharePoint Web 应用程序配置为 Windows 身份验证并启用 Kerberos 协议,那么可以选择“Windows 身份验证”,否则就选择“可信身份验证”好了。我在配置选择身份验证模式的时候遇到了问题,开始选择的“Windows身份验证”,在使用的过程中,总是提示错误,检查SSRS是否已经集成,上网查了一下好像跟NTLM和Kerberos有关,需要用Setspn.exe 命令行工具设置SPN来为域用户帐户配置服务主体名称,我怕把服务器搞坏,没敢做,后来就改成“可信身份验证”来用了。
- “授予数据库访问权限”的帐户都要能够访问SSRS数据库,否则会出错,设置好后需要重新启动服务。
在MOSS中建报表库
- 检查“网站集功能”中的“报表服务器集成功能”是否已经激活,一般情况下是配置好集成后就激活了的。
- 给文档库或者列表库添加“报表服务器内容类型”。
报表的部署
- 一个一个的上载。
- 使用VS部署。比如报表库的路径是http://sps-server/reports,在这个列表中建一个文件夹DataSource作为数据源文件夹,建一个文件夹RSFiles作为报表的文件夹。
那么报表项目属性中
TargetServerURL填写http://sps-server/reports/
TargetDataSourceFolder填写http://sps-server/reports/DataSource
TargetReportFolder填写http://sps-server/reports/RSFiles
- 数据源必须是有效外部数据源连接字符串。如果域未启用 Kerberos 身份验证,则不能使用 Windows 集成安全性凭据类型。
- 必须对 SharePoint 站点拥有“成员”或“所有者”权限才可以发布报表,否则会验证拒绝。SharePoint的“成员”和“所有者”分别匹配Reporting Services的“内容管理员”和“发布者”。
一些缺点/问题
- 服务器场中只能添加一个报表服务器。
- 集成后原有的报表管理器将不可用。
- 无法通过SQL Server Management Studio 管理SharePoint 集成模式的报表服务器。
- 集成后一些Reporting Services的功能将不可用,比如:不能在报表服务器上部署和使用 Reporting Services 的自定义安全扩展插件。不能使用报表管理器,不能管理SharePoint集成模式的报表服务器实例。不能使用数据驱动订阅。不支持链接报表、“我的报表”、批处理方法等。。
- 集成后,同一个域下才能查看报表,否则会出现401错误。