使用crystal report.net进行开发的一些预备知识:
执行模式
水晶报表取数据可以使用下面的方法实现:
pull 模式:
被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。
push 模式 :
此时开发表不得不自己编写代码连接数据并组装dataset,同时将它传送至报表。在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化。
报表类型:
水晶报表设计器能够直接包含报表至工程也能够使用独立的报表对象。
strongly-typed 报表 :
当你将报表文件加入到项目中去时,它就变成了一个了“ strongly-typed“报表。在这些情况下,你将拥有直接创建报表的对象的权力,这将减少一些代码并且能够提供一些性能。
un-typed 报表 :
这里的报表并不直接包含在项目中,因此称为‘un-typed’ 报表。在这种情况下,你不得不使用水晶报表的”reportdocuemt“对象建立一个实例,并且”手动“地凋用报表。
其它注意事项
尽管水晶报表查看器拥有一些很酷的功能,如缩放、页面导航等。但是他不提供打印功能,你不得不调用游览器的打印功能。
vs.net中的水晶报表如果没有注册,那么它只能使用30次,30次后,”保存“功能就不能再使用了。为了避免这个,你不是不在 http://www.crystaldecisions.com/这里注册此产品。 (好像不是这样子的,不注册也好像能用很长的时间,只是不能提供支持)
默认安装的水晶报表只能支持5个用户,为了支持更多的用户,你不得不在 http://www.crystaldecisions.com/中购买许可证。
我在实际开发应用中使用的是push 模式 : , 因为一般表格模式比较简单,在web开发上完全可以用其他方式替代,因此,我使用的是实际开发中的图形报表做为例子。
开发步骤如下:
1、在项目中创建一个数据集,然后右键->选择“新建element”,element的名称就是数据表的名称。
数据集名称暂时定为:reportdata,element相当于一个数据表,名称暂定为:datatable,下一步是给element
增加字段,也就是我们报表中要使用的数据。注意字段类型。
2、绘制一个空的crystal report的报表文件(*.rpt),然后,在报表绘制界面上右键->选择“数据库->添加/删除数据库”打开“数据库专家”,选择“项目数据->ado.net数据集”,你会看到刚才创建的element数据集reportdata,选用datatable做为报表数据。下一步,通过报表专家插入“图表”,使用datatable中的数据字段
来生成报表的数据。
3、创建一个web窗体,在窗体上放一个crystalreportviewer控件!写代码获取填充一个定义的数据集dataset,然后,生成一个“报表文件的对象”,把该对象的数据源指向已经填充数据的dataset,对crystalreportviewer控件的reportsource属性赋值等于生成的“报表文件的对象”,crystalreportviewer控件的visible属性设置为true ;
代码注意事项:
1、dataset中填充数据的表的名称必须和原来定义的element一致,否则报表出来会是空白
2、用于填充dataset数据表的字段也要和element定义的字段属性,名称一致!
比如:
element中定义字段有两个:entryname string, entrysales decimal
填充dataset的sql语句,
select b.item_name as entryname ,sum(a.expend_money) as entrysales from t_ware_sales …….
完成以上3个步骤,你就可以在ie上看到你的web图形报表了,其实就是crystal生成的一张图片!
大功告成!
下一个章节,我将用自己的代码来详细说明整个过程。不过要是熟悉.net开发的按照我在本章节所描述的内容,应该已经没问题了!