给rdlc报表绑定数据源

开发环境是vs2010,给rdlc报表绑定数据源的办法:

1、建立数据集

    在项目里面添加新建项——>数据——>数据集,如下图:

    给rdlc报表绑定数据源_第1张图片

                                          图1  新建数据集

    然后在新建那个数据集的界面工具箱里面拖一个DataTable,如下图:

    给rdlc报表绑定数据源_第2张图片

                                       图2 在数据集中添加一个表

   表名和列名和数据库的那张表的名字相同,这里完成第一步。

2、新建一个rdlc,并设计样式和绑定数据集

   在项目里新建项——>Report——>报表,新建一个rdlc,在rdlc界面插入表格、矩阵等制作报表样式(点击单元格右上角的按钮可跳到绑定数据集),并为他绑定数据集,操作如下:

   给rdlc报表绑定数据源_第3张图片 

                                      图3  制作报表的样式   

给rdlc报表绑定数据源_第4张图片

                          图4  为报表绑定数据集

  现在再点击单元格右上角的那个按钮,就可以绑定数据集中的那些列了,从而获取数据集中的数据,例图:

   给rdlc报表绑定数据源_第5张图片

                                                                  图5  报表例子

  其中@......是参数,设置方法:在文本框中创建占位符

3、新建报表容器,在代码里为数据集绑定数据(如数据库中查询出来的表)

  在工具箱里拖一个报表容器ReportViewer,将绑定好数据的报表样式在容器中显示,代码如下:

 string ErJiJiGouMingCheng = CLIENTPublicVar.dt.Rows[0]["JiGouMingCheng"].ToString().Trim();
 string BanJiMingCheng = CLIENTPublicVar.dt.Rows[0]["BanJiMingCheng"].ToString().Trim();
string XiaoLeiLeiXingMingCheng = cbb_KaoShiXiaoLei.Text.ToString().Trim();
DataTable dt = CLIENTPublicVar.tb;//获取数据表(从数据库中查询出来的DataTable等)
DS_DengJiKaoShi myDS = new DS_DengJiKaoShi();//DS_DengJiKaoShi是数据集的名称 myDS.DengJiKaoShi.Clear();//清空数据,反正重复绑定 myDS.DengJiKaoShi.Merge(dt);//合并数据集中的表(填充数据),dt即是数据表 this.reportViewer1.LocalReport.ReportEmbeddedResource = "TCP_Client.UIL_DengJiKaoShi.RPT_DengJiKaoShiBaoBiao.rdlc";//报表的绝对路径,reportViewer1是报表容器控件 this.reportViewer1.LocalReport.DataSources.Clear();//清空数据源
 //绑定数据 
this
.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DS_DengJiKaoShi"/*报表那边定义的数据集*/, myDS.Tables[0])/*合并数据的数据集,这里一般照写,myDS在上面实例化了*/);
ReportParameter rp_YeMei_ErJiJiGouMingCheng
= new ReportParameter("ErJiJiGouMingCheng", ErJiJiGouMingCheng);//报表参数,图5中@ErJiJiGouMingCheng,@BanJiMingCheng等就是报表参数 ReportParameter rp_YeMei_BanJiMingCheng = new ReportParameter("BanJiMingCheng", BanJiMingCheng);//报表参数,前一个BanJiMingCheng是报表样式中的参数名,后一个是上面获取到的值 ReportParameter rp_YeMei_XiaoLeiLeiXingMingCheng = new ReportParameter("XiaoLeiLeiXingMingCheng", XiaoLeiLeiXingMingCheng);//报表参数
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp_YeMei_ErJiJiGouMingCheng, rp_YeMei_BanJiMingCheng, rp_YeMei_XiaoLeiLeiXingMingCheng });//添加报表参数 this.reportViewer1.RefreshReport();//刷新报表(必须刷新,不刷新的话是没数据显示的)

 

 

你可能感兴趣的:(数据源)