今天刚接触报表,花了很久时间,走了不少弯路,感受应该写出来和你们分享下,前车可鉴。web
首先建立项目,添加新建项目—数据—数据集,在工具箱中拖入DataTable控件,右击控件添加列,设置列名工具
添加新建项目—Reporting—报表,获得.relc结尾的文件,在右侧报表数据里,右击数据集—添加数据集spa
右击—插入表(默认为2行3列的表),修更名的hander为编号、姓名、年龄,在第二列点击选择相对应的数据集里的数据3d
*须要注意将Report1.rdlc文件的生成操做属性改成内容code
接下来新建一个类,写入代码server
public class Person { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } }
接着新建web窗体,在窗体里写入三个控件:ReportView、button控件和ScriptManager(没什么用,但没有这个控件,会报错)对象
<div> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="386px" Width="619px"></rsweb:ReportViewer> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="肯定" /> </div>
以后给button控件的点击时间写入代码:blog
1 protected void Button1_Click(object sender, EventArgs e) 2 { 3 /*先清空原来数据集*/ 4 ReportViewer1.LocalReport.DataSources.Clear(); 5 /*设置报表文件*/ 6 ReportViewer1.LocalReport.ReportPath = @"D:\task\Exercise1\Learn\Report1.rdlc"; 7 /*数据集的填充*/ 8 ReportDataSource rds = new ReportDataSource("DataSet1", loadData()); 9 /*将数据集添加到本地报表*/ 10 ReportViewer1.LocalReport.DataSources.Add(rds); 11 /*刷新报表显示*/ 12 ReportViewer1.LocalReport.Refresh(); 13 }
注意第6行的地址必定不能写错,不然会报错ip
最后写入l对象包含的数据loadDataci
1 private List<Person> loadData() 2 { 3 List<Person> per = new List<Person>(); 4 for (int i = 0; i < 5; i++) 5 { 6 per.Add(new Person() { ID = i + 1, Name = "name", Age = i + 18 }); 7 } 8 return per; 9 }
启动程序,完成!