ASP.NET中水晶报表的使用方法详解
前一段时间,由于在项目中要用到报表做统计,所以我学习了一下ASP.NET水晶报表的使用。水晶报表的执行模式(也就是取数据的方法)可以分为两种:
第一种是Pull模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。
另外一种就是Push模式:此时开发者不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表。在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化。
水晶报表中的报表类型也分为两种:
--StrongTyped报表: 当你将报表文件加入到项目中去时,它就变成了一个了“strongly-typed“报表。在这些情况下,你将拥有直接创建报表的对象的权力,这将减少一些代码并且能够提供一些性能。
--UnTyped报表:这里的报表并不直接包含在项目中,因此称为‘un-typed"报表。在这种情况下,你不得不使用水晶报表的”ReportDocuemt“对象建立一个实例,并且”手动“地凋用报表。
使用Pull模式 我们将通过下面的这些步骤来通过Pull模式来执行水晶报表
1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接。
2.拖放一个CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件。
3.在代码中调用DataBind方法。
ReportDocument ReportDoc =new ReportDocument();
ReportDoc.Load(Server.MapPath("MyPullDemo.rpt"));
#region解决登录错误问题
TableLogOnInfo logonInfo =newTableLogOnInfo();//
foreach(CrystalDecisions.CrystalReports.Engine.TabletbinReportDoc.Database.Tables)
{
logonInfo=tb.LogOnInfo;
logonInfo.ConnectionInfo.ServerName="(local)";
logonInfo.ConnectionInfo.DatabaseName="myDatabase";//
logonInfo.ConnectionInfo.UserID="sa";
logonInfo.ConnectionInfo.Password="sa1234";//
tb.ApplyLogOnInfo(logonInfo);
}
#endregion
CrystalReportViewer1.ReportSource=ReportDoc;
CrystalReportViewer1.DataBind();
使用PUSH模式
我们采用下面的几步使用Push模式执行水晶报表:
1.设计一个DataSet
2.创建一个.rpt文件同时将其指定给上一步建立的DataSet。
3.在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。
4.在代码中访问数据库并把数据存入DataSet
5.调用DataBind方法。
ReportDocumentReportDoc=newReportDocument();
ReportDoc.Load(Server.MapPath("MyPushDemo.rpt"));
stringstrProvider="Server=(local);DataBase=myDatabase;UID=sa;PWD=sa1234";
SqlConnectionMyConn=newSqlConnection(strProvider);
MyConn.Open();
stringstrSel="Select*fromSaleOfCuntry";
SqlDataAdapterMyAdapter=newSqlDataAdapter(strSel,MyConn);
--这里的ds与.rpt文件连接数据库所用的DataSet结构完全相同,名称可以不同
建立.rpt文件时DataSet的作用是为rpt文件提供一种架构。
这里用dataadapter填充数据集的一个实例,作为报表的数据源。
DataSetds=newDataSet();
MyAdapter.Fill(ds,"SaleOfCuntry");
ReportDoc.SetDataSource(ds);
Crv.ReportSource=ReportDoc;
Crv.DataBind();
相关文章
- ASP.NET编程入门与应用_aspnet网站开发实例
- [接上篇]在Window10/11的Linux子系统Docker上部署VB.NET Asp.Net Core WebAPI应用
- 《ASP.NET Core 6框架揭秘》实例演示:自定义一个服务器
- .net利用MSSQL连接ASP.NET的办法探索(mssql 连接asp)
- ASP构建Web应用MySQL必不可少(asp需要mysql)
- 在asp.net中实现datagridcheckbox全选的方法
- asp.net跳转页面的三种方法比较
- ASP.NET表单验证方法详解
- asp.net分页潜谈
- asp.net页面之间传递参数的几种方法
- ASP.NET页面间数据传递方法小结
- 增加asp.net应用程序性能的20种方法(简单有效)
- ASP.NET编译执行常见错误及解决方法汇总
- 在asp.net(c#)下实现调用cmd的方法
- asp.netC#实现下载文件的六种方法实例
- asp.net初始化文本框的小例子
- Asp.net第三方控件ComboBox组合框介绍
- asp.net获取select值的方法
- ASP.net中网站访问量统计方法代码
- ASP.NET两个截取字符串的方法分享
- ASP.NET单选按钮控件RadioButton常用属性和方法介绍
- asp.netC#实现解压缩文件的方法
- ASP.NET中弹出消息框的几种常见方法
- ASP.Net下载大文件的实现方法
- asp.net(C#)禁止缓存文件不让文件缓存到客户端