** _ By Ben _
**
Reporting Service + SP1 ** for SQL server 2000 预览研究 **
环境 : WinXP, SQL Server 2000 + SP 3A , .Net 1.1
附件 : ( 下载附件 )
Project: Reporting Service 报表设计的 Project
Setup: 报表程序发布安装程序
Web: Reporting Service 的 Web 应用
Win: Reporting Service 的 Win 应用
** 研究思路 ** :
1. 了解熟悉 Reporting Service 各个基本概念
2. 安装运行 Reporting Service
3. 配置 Reporting Service 设置
4. 设计报表
5. 实现 .Net 程序调用报表
6. 实现安装发布报表
** 概述 ** ** **
Reporting Service 与大家熟悉的水晶报表是同一类东西 : 报表工具 .
基于 Sql Server 2000, 结合 VS.NET 强大的设计器可以轻松实现报表制作
** Reporting Service ** ** 组件 ** :
1. Web 报表管理器 (http://localhost/Reports)
2. VS.NET 报表设计器
3. 报表 Web Service (http://localhost/ReportServer/ReportService.asmx)
4. Reporting Service 的 Web 端站点 (http://localhost/ReportServer)
** 报表主要构成 ** :
数据源 (RDS) 配置数据库连接串 . 是一个标准 xml 文件
报表 (RDL) 配置 sql 语句 , 报表样式 . 也是一个标准 xml 文件
** 1. ** ** 安装 ** ** **
需求环境 : Sql Server 2000 + SP 3A
安装过程中可以设置组件 1, 组件 4 的 Web 路径 ( 本研究过程设置默认路径 )
过程略
** 2. ** ** 配置 ** ** **
进入 Web 报表管理器 (http://localhost/Reports)
A. 管理用户
用户角色分 :
发布者 可以将报表和链接报表发布到报表服务器。
浏览者 可以查看文件夹、报表和订阅报表。
内容管理员 可以管理报表服务器中的内容。包括文件夹、报表和资源。
我的报表 可以发布报表和链接报表;管理用户的 My Reports 文件夹中的文件夹、报表和资源。
用户权限设置与我们熟悉的 SharePoint 很相似 , 可以设置报表 Web 端站点的权限和某个报表的权限 .
不同的是 , Reporting Service 权限设置可以结合 Sql 的用户设置来实现更具体的权限分配
关键是报表的数据源连接要以 Windows 身份验证 ( 目的是将 Web 访问的 Windows 身份带到 Sql), 不能为 sa 用户
B. 报表的订阅
这点与 SharePoint 也很相似 , 可以将订阅一些报表 . ( 具体实现在本次研究中略过 )
C. 报表的历史
可以实现快照功能 , 可以手工创建 snapshot, 也可以实现无人操作 -- 设定 snapshot 计划自动创建 snapshot. ( 具体实现在本次研究中略过 )
D. 报表的 " 执行 " 设置
可以设置报表的数据缓冲 , 执行时间 ( 超时时间 ). ( 具体实现在本次研究中略过 )
此外 , 可以上传 rds, rdl( 数据源 , 报表 ). 由于它们只是 xml 文件 , 所以可以很灵活 .
由 ReportingServicesService.exe 这个 window service 解析
** 3. ** ** 设计报表 ** ** **
运行 vs.net
创建项目 ->
( 此时可以从项目模板分类里有 " 智能商业项目 " 里的列表中看到有一项是 Reporting Service 项目模板的 ) 选取 Reporting Service 项目模板并创建
创建报表可以使用向导创建 , 高级点的也可以手工创建
项目会自动生成两个 Folder: 共享数据源 , Reports
这里介绍手工创建主要过程 :
A. 新建数据源 . 在 Folder 共享数据源里利用右键添加新项来创建数据源 , 它会自动生成一个 rds 文件
B. 新建报表 . 同样 , 利用右键添加新项创建报表 , 它会自动生成一个 rdl 文件 . 在这里我们可以像设计 asp.net 页面一样来设计报表样式
C. 发布 / 部署到 Reporting Service 的 Web 端站点 .
首先打开报表的 project 属性看看 :
OverwriteDatasources: true|false 部署时是否覆盖现在的 rds 数据源
TargetFolder: 部署到 Reporting Service 的 Web 端站点的报表的目录 , 比如输入 DemoProject, 需要在 http://localhost/ReportServer/DemoProject 下访问部署的报表
TargetServerURL: 部署到 Reporting Service 的 Web 端站点的 Web 路径
StartItem: 这个是运行在 vs.net 上的 , 按 Ctrl + F5 运行报表 Project 的报表启动项
** 4. .NET ** ** 程序调用报表 ** ** ( ** ** 实例请看附件 ** ** ) **
方式一 : 也是最简单的调用 , 就是直接用 Brower 打开 Reporting Service 的 Web 端站点的报表 .
可以通过 URL 参数作为报表的输入参数 , 具体的请看附件 Web 项目的 DynamicQuery.rdl
方式二 : 通过调用 Reporting Service 提供的 Web Service. 它已经提供有若干的 Web method 供调用
5. 发布安装报表
安装 Reporting Service 后会有个 rs.exe 工具 . 路径 "%SYSTEMDRIVE%\Program Files\Microsoft SQL Server\80\Tools\Binn\RS.exe"
可以看看 rs.exe 的 help, 它支持几个特定的参数 , 利用 .rss 脚本实现将 rdl, rds 发布安装到 Web 端站点
经研究已经设计出一个 Setup 程序 . 见附件 Setup 目录
** 总结 ** ** : **
感觉上 ,
Reporting Server 的缺点 :
Reporting Service 报表设计上还有些不成熟
设计报表不方便 ; Web 端浏览报表必经导出后才可以打印 ; 有些设置的东西无效 ( 这点好比设置 asp.net 的 Session 生存时间时灵时不灵的现象 );
复杂的报表 ( 比如嵌套的子报表 , 如附件里的 supplier.rdl) 查询慢 .
虽如此 , 但 Reporting Service 还是一个比较 Cool 的报表工具 ,
可取之处也正是如上介绍它的一些的特点