简单介绍一下水晶报表的推与拉两种模式

时间:2022-09-09 09:28:49

简单介绍一下水晶报表的推与拉两种模式

水晶报表的数据获取模式本来是个最基本的概念,奈何总还是有人问
我用Push模式做了个报表,请问什么是push模式? 呵呵
索性就再来说一说

水晶报表是强大的数据分析工具,如何将水晶报表与数据关联起来就是我们在这里要说的问题

一种就是水晶报表直接从数据库(数据源)中获取数据,就是水晶报表去拉(Pull),也叫提取.

比如我们在选取数据源的时候选的
Access/Excel
ODBC
OLEDB
可以直接访问到数据
这样基本上不需要编写什么代码,做好模板就OK,到时候直接调模板就可以了
但是在部署或数据库等发生变动时就比较麻烦了


另外一种就是数据库将数据"推(Push)"给水晶报表,这个推的关系需要你自己写代码来实现
当然,推模式之前也需要先制作模板,
这个时候我们就可以使用字段定义的方式或ADO.Net(XML)的方式
字段定义的方式是生成一个字段定义文件,这个文件模式成一个表结构映射给水晶报表
然后在程序中组合或获取数据到Recordset,将这个Recordset推入到水晶报表。
参见
http://www.cnblogs.com/babyt/articles/116878.html
http://www.cnblogs.com/babyt/articles/116880.html

而Ado.Net则是以一个Xml文件做为字段定义文件
在程序中组合或获取数据到DataSet来填充报表数据
参见
http://www.cnblogs.com/babyt/articles/118097.html
http://www.cnblogs.com/babyt/articles/118098.html

 

使用该方式的好处是便于部署,但是代码要多写不少.
不过我还是喜欢这一种,因为使用该方式不仅可以更灵活的组织数据库里的数据,甚至可以自行任意组织数据.
更加灵活可控
比如,我们还可以使用WebService的数据来实现本地报表
http://www.cnblogs.com/babyt/articles/133399.html