水晶报表的推模式实现

        水晶报表是一个使用容易使用的报表,其实现方法基本由两种,一种是推模式,一种是拉模式,现在我写了一个推模式的实现,代码如下:
        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();
       这样在报表中就可以显示空行的显示。

你可能感兴趣的:(报表,dataset,menu)