日期:2014-05-19  浏览次数:20902 次

关于水晶报表最基本的问题:请问水晶报表绑定数据与不绑定数据的区别。
水晶报表可以在设计的时候绑定数据,也可以只定义字段,然后在C#中写代码从数据集中填充数据,然后设置水晶报表的DataSource,请问两者有什么区别?如果我在水晶报表里已经绑定了数据,又在C#中写代码填充数据,两者会不会有冲突?还是重复做了一次无用功呢?

------解决方案--------------------
水晶报表绑定字段有两种方式,push和pull模式。push模式就是你说的运行时绑定,pull模式就是设计时绑定。我水晶报表用的不多,这两种模式似乎不能互换。个人觉得pull模式设计起来简单一些,push模式则可是使报表更灵活,因为格式、数据都可以在运行时指定、修改。
不知道对你有没有帮助,觉得你要设计报表的话还是去弄本相关的书籍看看。
------解决方案--------------------
拉和推模型
为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。
拉模型
在拉模型中,驱动程序将连接到数据库并根据需要将数据“拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。
推模型
相反,推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。


--如果还有疑问,你自己轻易就可以做个小例子尝试一下。

------解决方案--------------------
pull模式是水晶报表与数据库直接打交道.
所以两种模式只可选其一。因为工作方式都不一样