4,819
社区成员




//主报表绑定了
string l_MainReportSql =zax09;
oda = new OracleDataAdapter(l_MainReportSql, ocnn);
DataSet ds = new DataSet();
oda.Fill(ds);
CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables[0]);
CrystalReportViewer1.ReportSource = CrystalReportSource1;
CrystalReportSource1.DataBind();
//这段是扫出报表里面的子报表
ReportDocument subRepDoc = new ReportDocument();
Sections crSections;
ReportObjects crReportObjects;
SubreportObject crSubreportObject;
crSections = CrystalReportSource1.ReportDocument.ReportDefinition.Sections;
foreach (Section crSection in crSections)
{
crReportObjects = crSection.ReportObjects;
foreach (ReportObject crReportObject in crReportObjects)
{
if (crReportObject.Kind == ReportObjectKind.SubreportObject)
{
crSubreportObject = (SubreportObject)crReportObject;
subRepDoc = crSubreportObject.OpenSubreport(crSubreportObject.SubreportName);
//这里要如何付给他数据源呢?
subRepDoc.SetDataSource(ds.Tables[0]);
}
}
}
//这里开始做第一个子报表
string l_SubReportSql =zax10;
oda = new OracleDataAdapter(l_SubReportSql, ocnn);
DataSet ds = new DataSet();
oda.Fill(ds);
CrystalReportSource1.ReportDocument.SubReports["子报表名称1"].SetDataSource(ds.Tables[0]);
//我就是不知道子报表名称1和zax10之间的关系怎么关联的
OK 基本了解。就是取出SQL,然后用SQL再取出记录集。
//主报表绑定了
string l_MainReportSql =zax09;
oda = new OracleDataAdapter(l_MainReportSql, ocnn);
DataSet ds = new DataSet();
oda.Fill(ds);
CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables[0]);
//这里开始做第一个子报表
string l_SubReportSql =zax10;
oda = new OracleDataAdapter(l_SubReportSql, ocnn);
DataSet ds = new DataSet();
oda.Fill(ds);
CrystalReportSource1.ReportDocument.SubReports["子报表名称1"].SetDataSource(ds.Tables[0]);
//同理第2个子报表
l_SubReportSql =zax11;
oda = new OracleDataAdapter(l_SubReportSql, ocnn);
DataSet ds = new DataSet();
oda.Fill(ds);
CrystalReportSource1.ReportDocument.SubReports["子报表名称2"].SetDataSource(ds.Tables[0]);
//...
CrystalReportViewer1.ReportSource = CrystalReportSource1;
CrystalReportSource1.DataBind();
//后面的都不要了