『RDLC』客户端报表的简单使用

今天看了几个关于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

参考:

  1. http://msdn.microsoft.com/zh-cn/library/ms252067(v=VS.90).aspx  「创建客户端报表定义 (.rdlc) 文件」
  2. http://msdn.microsoft.com/zh-cn/library/ms252094(v=vs.90).aspx   「为报表创建数据源」
  3. http://msdn.microsoft.com/zh-cn/library/ms252130(v=vs.90).aspx   「向报表中添加自定义代码」
  4. http://msdn.microsoft.com/zh-cn/library/ms252104(v=vs.90).aspx   「添加和配置 ReportViewer 控件」
  5. http://msdn.microsoft.com/zh-cn/library/ms252072(v=vs.90).aspx   「使用“ReportViewer 任务”智能标记面板」

转载于:https://www.cnblogs.com/sitemanager/archive/2012/03/29/2423595.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值