Reporting Service for SQL server 2000预览研究

类别:.NET开发 点击:0 评论:0 推荐:

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

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

本文地址:http://com.8s8s.com/it/it42694.htm