【IT168 技术文档】听说MS SQL 2005自带报表功能,于是我测试了一下,还算比较好用,所以我就录了一个用存储过程来写报表的例子。由于测试过程当中没有语音,所以我在这里讲解一下。
使用的数据库是MS SQL 2000的Northwind数据库,表是orders。
if exists(select * from sysobjects where name='procTest' and xtype='P') drop proc procTest go create proc procTest @CustomerId varchar(20) as if @CustomerId='*' select * from Orders else select * from Orders where CustomerID=@CustomerId
可以用exec procTest 'VINET' 或者exec procTest '*'来测试
之后建立数据库报表项目
1、建立数据源
2、建立新的报表
3、建立数据集,这里我采用了特殊的方式,因为报表设计界面需要列出字段,所以我将存储过程中需要输出的字段select语句先在数据集运行一下,那么就得出了纪录集的所有字段,而不用自己一个个添加。
4、建立报表的参数CustomerID,设置默认值为*,和存储过程当中判断语句一致。
5。、更改数据中的语句:="exec procTest '" & Parameters!CustomerID.Value & "'"
6、基本上完成。
在演示中不知道如何按F5出现报表无法现实,但是在预览中是正常的,大概原理能明白就可以了。关于报表匿名浏览的问题网上有介绍,这里就不多说了。