什么是 Ad - hoc 报表 (即席报表)?
简单来说,Ad - hoc 报表就是允许用户(注意是终端用户)自行设计的一种报表,比如自己添加行列,汇总,排序等。这里一般人都会有些不理解,因为:
1、终端用户不懂技术,不可能让用户直接访问数据源,比如我们的使用SQL Server的数据库,我们不可能让用户去输入数据库服务器名,用户名和密码,选择要使用的数据库和表。
2、即使连接上了数据库,用户也不可能知道每个表是干什么的,表里面的字段代表什么业务含义。比如我要看订购数量,这个信息可能存在于某个表的OrderQuantity字段,如果你取个更奇怪的字段名,估计用户会晕。
3、既然是让终端用户自己设计报表,那需要什么样的工具呢?直接通过Web的方式应该很困难吧?
为了解决这些问题,Ad - hoc 报表提供了两样东西:
1、报表模型。
报表模型由开发人员建立,比如我要建立一套供用户查看销售情况的报表模型,那么我定义好数据源连接(数据库服务器,用户名和密码,数据库),选取数据库中的几张表或视图,建立表或视图之间的关联(可以是物理外键,也可以是自己加上去的虚拟关联),还有,为每个表和视图以及每个字段都提供可读性好的名称,比如把字段名OrderQuantity改名为“订购数量”。总之,你可以采取任何手段把用户看不懂的数据库结构转换成用户能看懂的业务模型。
2、设计工具
微软提供的是一个叫Report Builder的工具。用户需要下载安装。
下面就用一个实例来教你如何创建和使用MS BI的Ad - hoc 报表。
1、环境准备
要实现Ad - hoc报表,你需要如下东西:
1、SQL Server Business Intelligence Development Studio (BIDS)
这是开发环境,用来创建报表模型
2、SQL Server 2005
数据库,当然要的。
3、SQL Server 2005 Reporting Services
报表服务,报表和报表模型就发布在这上面,用户可以直接访问它,在这里下载Report Builder和使用Report Builder做Ad - hoc报表。
2、创建报表模型(Report Model)
1)创建工程
启动BIDS,新建项目,选择BI项目中的Report Model Project。
2)设置部署目标Reporting Services服务
Report Model是要部署到Reporting Services上去的,所以需要指定Reporting Services服务在什么地方。在Solution Explorer里右键工程名,选择属性,在属性对话框中指定Reporting Services服务路径。
3)创建数据源 (Data Source)
我们使用SQL SERVER自带的AdventureWorks数据库。
4)创建数据源视图(Data Source View)
接下来我们要创建数据源视图(Data Source View)。用过Analysis Services的人对此不会陌生。
为了简单起见,这里我们只需要加入一个View,Purchasing.vVendor。在Solution Explorer里面的Data Source Views上点右键,选择Add New Data Source View。在向导中选择Purchasing.vVendor这个View加入视图中。
注意,这个数据源视图只是给开发人员用的,终端用户不可能看懂,接下来我们马上就要在这个数据源视图的基础上建立报表模型。
5)创建报表模型(Report Model)
右键Report Models,选择Add New Report Model。打开向导,全部默认,最后一步点Run。Report Model就创建好了。
表面上好像没做什么事,但实质上,这个Report Model已经完全是面向用户的一个数据模型了。注意看,字段"FirstName"变成了"First Name","AddressLine1" 变成了"Address Line 1"。也就是说,它自动帮你把字段名变得可读一些了(加了空格)。这是系统自动做的,当然,你可以改得更好,比如把"Phone"改成“电话号码”。
你还可以用Expression来定义列,还可以加Filter。这里不一一介绍了,总之,这个Report Model是面向用户的,开发人员应该尽可能的把后台的面向技术人员的数据存储结构转换成面向终端用户的业务数据结构。
3、部署报表模型
右键工程名,选Deploy。这个Report Model 就部署到你指定的Reporting Services上了。打开Reporting Services管理端,能看到刚创建的Report Model。
4、用户使用Report Builder制作Ad - hoc报表
把上面那个链接发给用户,用户点击上面的Report Builder按钮,第一次使用时会提示安装,安装完后就可以启动Report Builder来工作了。
Report Builder的使用很直观(毕竟是给用户用的),基本步骤就是选择Report Model,选择报表类型(Table, Matrix, Chart),然后就是从Report Model中拖拽内容到设计器中。一般用户玩两下就会了。
点击上面的Run Report按钮运行报表
可以在线做过滤,排序,分组等。还可以保存和导出报表。保存报表将把报表保存在Reporting Services服务器上。导出报表将报表导出到用户本地,可以导出成各种格式,如Excel。
小结:
1、Ad - hoc报表能让终端用户自行设计报表。
2、用户根据开发人员提供的Report Model设计报表,Report Model是用户能够理解的数据模型。
3、微软使用Reporting Services存放Report Model,使用Report Builder作为供用户使用的报表设计工具。
4、实施Ad - hoc报表的关键在于根据用户的需求提供合适的Report Model。