今天剛接觸報表,花了很久時間,走了不少彎路,感受應該寫出來和你們分享下,前車可鑑。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 }
啓動程序,完成!