在《简单实现Crystal Report动态加载》中,所提供的方法有时候并不能很好的工作。于是通过不断的实验和资料查询,终于发现了更好的方法。核心代码如下
CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
String path = Server.MapPath("./");
path = path + @"\Report\Report.rpt";
path = path.Replace("\","\\");
ReportDocument Rep=new ReportDocument();
Rep.Load(path);
DataSet ds = getDataSet(getConn());
Rep.SetDataSource(ds);
CrystalReportViewer1.ReportSource = Rep;
CrystalReportViewer1.DataBind();
如上代码所示,这个方法通过ReportDocument类的Load()方法把报表模板加载入内存,利用推模式把DataSet数据推入模板。最后把这个ReportDocument绑定到CrystalReportViewer上。