在ASP.NET下使用水晶报表

还有one篇text:《Asp.Net中使用水晶报表》

首先建一个ASP.NET(C#)工程crystalReport,这个大家都会的.

第一步是添加新项CrystalReport1:

(1-1)

为了演示主要问题,我们在弹出的选择对话框中选择作为空白报表

CrystalReport1.rpt面页右键选择:”数据库à添加/删除数据库出现下面对话框:

(1-2)

然后点开OLE DB(ADO)的加号,将弹出选择数据库的对话框,我用的是SQLserver2000,在这个对话框里面会提示你输入以下信息:

(1-3)

按照自己的情况填写后,如果不修改具体的连接信息可以直接点完成”,(1-2)就会变成这样:

(1-4)

其中项目数据里面的当前连接显示的就是OLE DB(ADO)的连接,这样就可以将表添加到右边的选定的表中了(切记:不要既从”OLE DB” 中选表或命令又从当前连接中选,如果你用了数据集,也是一样的道理,否则全提示出登陆失败的错误!),现在我们只选择一个表,(因为多选还有一个连接问题)确定后返回.

就会发现在字段资料管理器里面数据库字段中多了我们所选择的表中的字段:

(1-5)

这样就可以把字段直接拖到CrystalReport.rpt里面了.布置好布局.这里你会发现在解决方案资源管理器里面引用了不少东西:如图(1-6) 那样,我们成功一半啦

(1-6)

 

回到WebForm1.aspx页面,选择控件CrystalReportViewer将其放到页面上,用系统命名CrystalReportViewer1不改名.

然后引用如下:

using CrystalDecisions.Shared;

using CrystalDecisions.CrystalReports.Engine;

WebForm1.aspx.csForm_Load里面添加代码:

TableLogOnInfo logOnInfo = new TableLogOnInfo();

              ReportDocument rpdMy0= new ReportDocument();

 

              logOnInfo.ConnectionInfo.ServerName = "NNN";

              logOnInfo.ConnectionInfo.Password="dong";

              logOnInfo.ConnectionInfo.DatabaseName="Lab";

              logOnInfo.ConnectionInfo.UserID = "sa";

 

              String path = Server.MapPath("CrystalReport2.rpt");

              rpdMy0.Load(path);

 

              rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);

 

              CrystalReportViewer1.ReportSource = rpdMy0;

其中:

TableLogOnInfo类是: 提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.

运行工程:得到如下结果,成功啦!!

posted @ 2006-07-26 22:36  小y  阅读(1339)  评论(1编辑  收藏  举报