最新开始学习C#,并且做了个小项目,在使用rdlc报表的时候花了很多时间,现在我简单的记录下我的过程:
1、首先把我把主窗体设计好,如下图,这个不用多说了吧,我要实现的功能是点击打印的时候弹出一个窗体,窗体里面就是rdlc报表,报表的数据就是下图里列表的数据。
2、新建一个PrintForm的窗体,然后在左上角工具箱拖拉一个ReportViewer,如下图:
拉好后就长这样:
3、现在开始来建一个数据集DataSet吧,选中解决方案名称(就是你项目的根目录)右键—添加—新建项,弹出的框如下图,选择 数据—数据集(这个名称要记住,在后面代码中会用到)—添加。
4、上一步添加完成后就是一个空的数据集,在左边工具箱中拖拉DataTable,就是右边这个样子,名字可以改
5、点击这个DataTable右键—添加—列,然后给列修改列名,这个列名是要跟你从数据库中查出来要显示的数据名相同
6、数据集建好后接下来就新建一个rdlc报表,选中解决方案名称右键—添加—新建项—Reporting—报表—添加
添加完成后在左边工具箱中拖拉一个表到报表上
拖完会弹出一个数据集属性框,选择数据源(第三部建的DataSet)—数据集(第四部建的DataTable)
7、现在有了数据源,就可以填充报表了,点击一个空白格右键可以增加列,第一行表头双击就可以输入文字,如果显示乱码,看看右下角字体,我选的微软雅黑就可以显示。第二行是要绑定的数据,鼠标移入每一格,右上角会出现一个图标,点击就能选择你之前在数据集里面设置的值,选好后就是下图这样
8、接下来开始写代码的部分,在主窗体打印按钮双击进去的函数写
private void button3_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt = this.global_dt.Copy(); //命名datatable和数据集对应 dt.TableName = "DataTable3"; //创建新得ds,报表页面取数据集值 DataSet ds = new DataSet(); ds.Tables.Add(dt); PrintForm rpe = new PrintForm(ds); rpe.Owner = this; rpe.ShowDialog(); }9、存放报表的PrintForm窗体代码
public DataSet ds = new DataSet(); public PrintForm(DataSet global_ds) { ds = global_ds; InitializeComponent(); } private void PrintForm_Load(object sender, EventArgs e) { this.reportViewer1.LocalReport.DataSources.Clear(); ReportDataSource rds = new ReportDataSource("DataSet1", ds.Tables[0]); this.reportViewer1.LocalReport.DataSources.Add(rds); this.reportViewer1.LocalReport.ReportEmbeddedResource = "WindowsFormsApplication1.Report1.rdlc";//WindowsFormsApplication1是我的解决方案名称,Report1.rdlc是报表名称 this.reportViewer1.RefreshReport(); }10、大功告成,这两天做这个我在网上看了挺多的但是觉得挺乱的,对于一个纯新手来说有点难度(当然我也是第一次写博客,不知道大家看得懂不。。。)