水晶报表是一个使用容易使用的报表,其实现方法基本由两种,一种是推模式,一种是拉模式,现在我写了一个推模式的实现,代码如下:
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(Server.MapPath("CrystalReportPush.rpt"));
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=XXX;User ID=sa;pwd=;");
SqlDataAdapter adapter = new SqlDataAdapter("select * from XXX", conn);
adapter.Fill(ds);
rptDoc.SetDataSource(ds.Tables[0]);
this.CrystalReportViewer1.ReportSource = rptDoc;
this.CrystalReportViewer1.DataBind();
同样在报表中可能需要使用更多的空行,这样推模式实现如下:
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(Server.MapPath("CrystalReportPush.rpt"));
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=XX;User ID=sa;pwd=;");
SqlDataAdapter adapter = new SqlDataAdapter("select * from XXX", conn);
adapter.Fill(ds, "menu");
int iCount = ds.Tables[0].Rows.Count;
for (int i = 0; i < 总行数- iCount; i++)
{
DataRow dr = ds.Tables[0].NewRow();
ds.Tables[0].Rows.Add(dr);
}
ds.AcceptChanges();
rptDoc.SetDataSource(ds.Tables[0]);
this.CrystalReportViewer1.ReportSource = rptDoc;
this.CrystalReportViewer1.DataBind();
这样在报表中就可以显示空行的显示。
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(Server.MapPath("CrystalReportPush.rpt"));
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=XXX;User ID=sa;pwd=;");
SqlDataAdapter adapter = new SqlDataAdapter("select * from XXX", conn);
adapter.Fill(ds);
rptDoc.SetDataSource(ds.Tables[0]);
this.CrystalReportViewer1.ReportSource = rptDoc;
this.CrystalReportViewer1.DataBind();
同样在报表中可能需要使用更多的空行,这样推模式实现如下:
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(Server.MapPath("CrystalReportPush.rpt"));
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=XX;User ID=sa;pwd=;");
SqlDataAdapter adapter = new SqlDataAdapter("select * from XXX", conn);
adapter.Fill(ds, "menu");
int iCount = ds.Tables[0].Rows.Count;
for (int i = 0; i < 总行数- iCount; i++)
{
DataRow dr = ds.Tables[0].NewRow();
ds.Tables[0].Rows.Add(dr);
}
ds.AcceptChanges();
rptDoc.SetDataSource(ds.Tables[0]);
this.CrystalReportViewer1.ReportSource = rptDoc;
this.CrystalReportViewer1.DataBind();
这样在报表中就可以显示空行的显示。