Reporting Service for SQL server 2000预览研究

** _ 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. ** ** 设计报表 ** ** **

  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 的报表工具 ,

可取之处也正是如上介绍它的一些的特点

Published At
Categories with Web编程
Tagged with
comments powered by Disqus