水晶报表10版本,不再上水晶报表9一样自动帮你给子报表set 记录集,需要你在程序中自己添加
protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
DataSet newDs = new DataSet(); 。
。得到报表的数据集合set给newsDs
DataSet dstMain=biz.GetDataSetList(pStart, pEnd, pStoreName); newsDs.Tables.Add(dstMain.Tables[0].Copy());//添加主报表数据集
DataSet dstPOS1 = new DataSet(); DataSet dstPOS2 = new DataSet(); dstPOS1 = biz.GetDataSetList(pStart, pEnd, pStoreName1); dstPOS2 = biz.GetDataSetList(pStart, pEnd, pStoreName2); newsDs.Tables.Add(dstPOS1.Tables[0].Copy());//添加子报表数据集 newsDs.Tables.Add(dstPOS2.Tables[0].Copy());//添加子报表数据集
。
Type m_Report_type = m_Assembly.GetType(ReportClassName);//ReportClassName是报表名 Object aa = m_Assembly.CreateInstance(m_Report_type.FullName); ReportClass reportEngine = (ReportClass)m_Assembly.CreateInstance(m_Report_type.FullName);
for(int i=1;i<newDs.Tables.Count;i++)//给子报表赋值 { ReportDocument oSubreport=reportEngine.Subreports[i-1]; oSubreport.SetDataSource(newDs); }
reportEngine.SetDataSource( newDs ); CrystalReportViewer1.ReportSource = reportEngine; return;
|