时间:2021-05-28
前一段时间,由于在项目中要用到报表做统计,所以我学习了一下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 = new TableLogOnInfo();//
foreach( CrystalDecisions.CrystalReports.Engine.Table tb in ReportDoc.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方法。
复制代码 代码如下:
ReportDocument ReportDoc = new ReportDocument();
ReportDoc.Load(Server.MapPath("MyPushDemo.rpt"));
string strProvider = "Server=(local);DataBase=myDatabase;UID=sa;PWD=sa1234";
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = "Select * from SaleOfCuntry";
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
--这里的ds与.rpt文件连接数据库所用的DataSet结构完全相同,名称可以不同
建立.rpt文件时DataSet的作用是为rpt文件提供一种架构。
这里 用dataadapter填充数据集的一个实例,作为报表的数据源。
复制代码 代码如下:
DataSet ds = new DataSet();
MyAdapter.Fill(ds,"SaleOfCuntry");
ReportDoc.SetDataSource(ds);
Crv.ReportSource = ReportDoc;
Crv.DataBind();
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了水晶报表asp.net的webform下基本用法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:protectedvoidPage_I
本文实例讲述了asp.net水晶报表参数字段在代码中赋值的方法。分享给大家供大家参考。具体实现方法如下://声明将参数传递给查看器控件所需的变量。Paramet
水晶报表布置后里面的图片不显示的情况,分两种:一是:水晶报表工具栏上的图片不显示;二是:水晶报表中的的图片对象不显示;针对第一种情况的解决方法:对于工具栏上的图
rpt文件用对应的水晶报表CrystalReports可以打开。 CrystalReports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表。
rpt文件用对应的水晶报表CrystalReports可以打开。 CrystalReports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表。