在IFS报表开发中,经常使用水晶报表进行开发。但在NET平台开发水晶报表还是第一次,现将NET平台开发报表一些经历留下。
在VS自带的水晶报表在没有注册情况下只能使用30次,故先需注册,可以通过CrystalReport/注册更换地址进行对报表进行注册。
水晶报表是一个优秀的报表工具,它有两种数据访问模型:拉和推模型。
拉模型:拉模型是指驱动程序将连接到数据库并根据需要将数据“拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型,如下图:
推模型:推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来,各下图:
从上面两种模型来看,推模型开发报表比较灵活,现将在vs2005 C/S下开发推模型简单记录下来:
1、建立一窗体FrmRpt
2、水晶报表查看器:在FrmRpt窗体上添加CrystalReportViewer并命名为rptView;
3、数据集:在项目中新建一个数据集文件:在解决方案资源管理器中,右击项目名,指向“添加”,然后单击“添加新项”,选择“数据集”,并命名为 RptDataSet;
4、向数据集添加数据表:服务器资源管理器/数据连接/选择需要的数据库并选上数据表。这里选Northwind数据库的Customers表(也可以向数据库添加一个DataTable,并将DataTable相应列设置与报表所需字段一致的数据即可),保存生成数据集。
5、水晶报表制作:新建一rpt文件名为CrystalReport1.rpt,在数据库专家,选择项目数据/ADO.NET数据库,选上刚才的Customers表。
6、FrmRpt窗体代码开发:
最后看下报表效果: