CrystalReport与ASP.net的集成

一、创建数据集
在“解决方案资源管理器”的项目名称上点右键,选择“添加新项”,选择“数据集”,取名字,比如:ds1.xsd,点击“打开”,VS会创建数据集生成页面,选择数据源,比如SQLSERVER中的Northwind,把其中的表employees拖到页面上,系统会根据数据表结构自动生成一个数据集。
二、创建水晶报表
选择“添加新项”,然后从模板中选择水晶报表,取名,比如:cr1.rpt,点击“打开”,选择“使用报表专家”,这时会出现创建水晶报表的向导,第一步,选择数据源,我们就选择刚才创建的ds1.xsd作为报表的数据源,下一步后选择表,将employees的所有字段都选(也可以选择几个)。然后选择“完成”,系统会打开水晶报表编辑器,在这里你可以编辑好报表的格式。
三、查看报表
新建一个aspx页面,在页面上拖放一个CrystalReportViewer,ID为crv1,然后在代码窗口引用CrystalDecisions.CrystalReports.Engine。下面就是关键的PUSH操作了:
Dim da as new SqlDataAdapter("select * from employees",cn)  -cn表示一个SqlConnection,这里略去具体的定义。
Dim ds as New ds1()  -注意这里实例化的是刚才我们定义的数据集,而不是一个空数据集。
da.Fill(ds,"employees")  -这里表的名称一定要和实际表的名称一致。
下面就是加载报表的过程了:
Dim doc as new ReportDocument()
doc.Load(Server.MapPath("cr1.rpt")
doc.SetDataSource(ds)
crv1.ReportSource=doc
这样,我们就通过ADO.net获取一个DataSet,然后利用ReportDocumnet将该数据Push到了水晶报表。

[操作关键]
我们根据数据表的结构创建了一个数据集,这个数据集的结构是和表的结构一模一样,注意只是结构上一样,是没有具体数据的,然后再把这个数据集设为水晶报表的数据源。如果你明白了这个道理,你就可以手工创建该数据集,这样可以得到更灵活的应用。
 

你可能感兴趣的:(asp.net,sqlserver,报表,dataset)