现在的位置: 首页 > 综合 > 正文

VS2010 Winform RLDC报表实现

2013年03月07日 ⁄ 综合 ⁄ 共 1252字 ⁄ 字号 评论关闭

                      vs2010调用多表数据的时候一般是建立视图,我尝试过把2个table放在一个报表数据源里,但是始终没有成功。

            所以我是用视图实现多表数据的。

            string strconn = "";
            SqlConnection conn = new SqlConnection(strconn);
            SqlDataAdapter ad = new SqlDataAdapter("select * from Staff,Department where Staff.DeptId=Department.DeptId", conn);
            DataSet ds = new DataSet();
            ad.Fill(ds, "aa");
                  
            ReportParameter rp = new ReportParameter("ReportParameter1","a");//这里是把string类型的a作为参数传递给*.rdlc报表数据源的参数ReportParameter1
            reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });//要在*.rdlc上面的报表数据源上面添加参数ReportParameter1

            this.reportViewer1.LocalReport.ReportEmbeddedResource = "RLDC1.Report1.rdlc";//为控件指定文件

            this.reportViewer1.LocalReport.DataSources.Clear();

           

           //这里的DataSet1 就是报表数据源的DataSet1,其实DataSet1就是视图,包含了Staff表和Department表数据的视图

           //ds.Tables["aa"]是上面我们得到的“select * from Staff,Department where Staff.DeptId=Department.DeptId”

            this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1",ds.Tables["aa"]));

         

           
            this.reportViewer1.RefreshReport();

     

注意:这里的Report1.rdlc要添加DataSet1里面的数据源,只要在Report1.rdlc添加了视图的列,form上面才能看到。

仅供交流

抱歉!评论已关闭.