本文主要是介绍一起学习水晶报表之拉模式【如何实现水晶报表显示数据信息】(课程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;
}
}
编译,运行成功!!
这篇关于一起学习水晶报表之拉模式【如何实现水晶报表显示数据信息】(课程3)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!