1.新建xsd数据源,可以只添加空的字段
2.在页面添加CrystalReportViewer和CrystalReportSource
3.代码
string crystalReportPath = Server.MapPath("FromReport1.rpt");
CrSource.ReportDocument.Load(crystalReportPath);
DataSet ds = new DataSet();
DataTable dt = dsMaster.Tables[0].Copy();
dt.TableName = "from";
DataTable dt0 = dsImport.Tables[0].Copy();
dt0.TableName = "import";
ds.Tables.Add(dt);
ds.Tables.Add(dt0);
ds.WriteXml(Server.MapPath("reportdataset.xsd"));
CrSource.ReportDocument.SetDataSource(ds.Tables["from"]);
CrSource.ReportDocument.OpenSubreport("ImportReport").SetDataSource(ds.Tables["import"]);
CrSource.DataBind();
crViewer.ReportSource = CrSource;
crViewer.DataBind();
//****************************************************************
//这是另外一种方法,没有用到XSD和CrystalReportSource,但没有成功
//string crystalReportPath = Server.MapPath("FromReport1.rpt");
//ReportDocument rdMaster = new ReportDocument();
//rdMaster.Load(crystalReportPath);
//rdMaster.SetDataSource(dsMaster.Tables[0]);
//rdMaster.Subreports["ImportReport"].SetDataSource(dsImport.Tables[0]);
//crViewer.ReportSource = rdMaster;
//crViewer.RefreshReport();
//***********************************************************************************