By Ben
Reporting Service + SP1 for SQL server 2000预览研究
环境: WinXP, SQL Server 2000 + SP3A, .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 + SP3A
安装过程中可以设置组件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. 设计报表
1) 运行vs.net
2) 创建项目 ->
3) (此时可以从项目模板分类里有"智能商业项目"里的列表中看到有一项是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 的报表工具,
可取之处也正是如上介绍它的一些的特点