你的分享就是我们的动力 ---﹥

RDLC客户端报表的简单使用

时间:2013-06-14 16:17来源:www.chengxuyuans.com 点击:

今天看了几个关于RDLC的文章,感觉都写得好复杂。所以自己尝试了一下。

在使用RDLC的时候,有几个基础的事情需要了解:

  1. RDLC是客户端报表的定义文件格式;
  2. 之所以使用RDLC而不是水晶报表的原因,就因为RDLC的配置相对简单,且自定义功能强大;
  3. 水晶报表是使用CrystalReportViewer控件呈现内容,使用RDLC是使用ReportViewer控件呈现内容;

 

要使用RDLC呈现出数据,要进行入下的几个步骤:

  1. 新建一个「 .rdlc 」文件,这个文件是用来设定显示样式,在这里,我们可以通过设置参数、数据集等来设定要显示什么数据,可以使用列表、矩阵、图表等等来设定要将数据显示成什么样子;
  2. 新建数据集「DataSet」项目,这个是要与「 .rdlc 」文件中使用的数据集对应的上的,如果在「 .rdlc 」中没有使用数据集,就不用了;
  3. 新建一个Form,并放置一个ReportViewer控件在上面,这个是用于容纳之前建立的「 .rdlc 」文件的,也就是说,数据会在这个Form中以rdlc定义的样式显示出来;
  4. 在Form中设置ReportViewer的基本属性,绑定rdlc文件路径,其他你在rdlc中设置的参数,以及绑定数据源
  5. 刷新ReportViewer对象

 

注意:在使用DataSet的时候,由于我是使用「推」的方式去给控件设定数据的,所以一定要注意 rdlc 文件中数据集的名称与DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet", ds.Tables["RetailDataSet"]))中的「DataSet」字符串对应,给DataSet填充的数据表名称与「RetailDataSet」对应。

这里,可以简单的对比一下使用RDLC与使用水晶报表。我之前写的一篇使用水晶报表实现打印的文章:『C#基础』使用 水晶报表 实现打印

RDLC样式:

image

代码:

「核心代码」        private void BusRetailReportForm_Load(object sender, EventArgs e)        {            #region 设置数据源            SqlConnection conn = new SqlConnection();            conn.ConnectionString = @"......................................";            SqlCommand cmd = new SqlCommand();            cmd.Connection = conn;            cmd.CommandText = "select * from ........";            SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, conn);            DataSet ds = new DataSet();            da.Fill(ds, "RetailDataSet");            #endregion            demoReportViewer.ProcessingMode =                 Microsoft.Reporting.WinForms.ProcessingMode.Local;                demoReportViewer.LocalReport.ReportPath =                Path.Combine(@"D:\Projects\csdemo\branches\csdemo2010\"+                @"csdemo.winform\DemoResource\DemoReport.rdlc");            demoReportViewer.LocalReport.DisplayName = "Demo Report Viewer";            demoReportViewer.LocalReport.DataSources.Clear();            demoReportViewer.LocalReport.DataSources.Add(                new Microsoft.Reporting.WinForms.ReportDataSource(                    "DataSet", ds.Tables["RetailDataSet"]));            this.demoReportViewer.RefreshReport();        }

成果:

image
略为修改RDLC文件之后的效果图:

image


转载注明地址:http://www.chengxuyuans.com/software_engineering/64490.html