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

总结:(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;
        }
    }

编译,运行成功!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值