您的位置:首页 > 其它

一起学习水晶报表之拉模式【如何实现水晶报表显示数据信息】(课程3)

2014-02-19 23:17 821 查看
总结:(1)新建rpt报表文件(2)使用一个控件【CrystalReportViewer】

上两节课程我们都是采用两个内置的控件来显示报表数据,但是我不喜欢,也不推荐各位依赖控件。这里,我将给大家介绍一下没有采用CrystalReportSource控件的情况下,如何实现绑定数据集,同样实现数据的显示呢???方法如下:

在原来的基础上,我们去掉CrystalReportSource控件,在后台实现代码绑定报表模板。

【1】引用命名空间:

using CrystalDecisions.Shared;

using CrystalDecisions.CrystalReports.Engine;

【2】书写后台代码:

public partial class WebForm1 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            ReportDocument rptDoc = new ReportDocument();

            rptDoc.Load(Server.MapPath("\\CrystalReport1.rpt"));


            TableLogOnInfo logInfo = new TableLogOnInfo();

            logInfo.ConnectionInfo.ServerName = @"127.0.0.1";

            logInfo.ConnectionInfo.UserID = "sa";

            logInfo.ConnectionInfo.Password = "admin@123456";

            logInfo.ConnectionInfo.DatabaseName = "北风贸易";

            for (int i = 0; i < rptDoc.Database.Tables.Count; i++)

            {

                rptDoc.Database.Tables[i].ApplyLogOnInfo(logInfo);

            }

            CrystalReportViewer1.ReportSource = rptDoc;

        }

    }

【3】其实是万变不离其宗,原理还是一样的。编译运行成功。

***********************【方法二】*************************************

【4】我们再看一下解决方案中的文件,报表模板下面有个cs文件。



我们来看看这个CrystalReport1.cs文件的内容:



其中有个属性ResourceName。这个属性返回的就是报表模板文件。那么我们也可以将前面那种方法的两个语句合并为依据,改为如下:

public partial class _Default : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            //ReportDocument rptDoc = new ReportDocument();

            //rptDoc.Load(Server.MapPath("\\CrystalReport1.rpt"));

            CrystalReport1 rptDoc = new CrystalReport1();

            

            TableLogOnInfo logInfo = new TableLogOnInfo();

            logInfo.ConnectionInfo.ServerName = @"127.0.0.1";

            logInfo.ConnectionInfo.UserID = "sa";

            logInfo.ConnectionInfo.Password = "admin@123456";

            logInfo.ConnectionInfo.DatabaseName = "北风贸易";

            for (int i = 0; i < rptDoc.Database.Tables.Count; i++)

            {

                rptDoc.Database.Tables[i].ApplyLogOnInfo(logInfo);

            }

            CrystalReportViewer1.ReportSource = rptDoc;

        }

    }

编译,运行成功!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐