請小心服用
若是要按某個按鈕後將reportViewer換成另一個rdlc(連dbDataSet一起換掉)
則在Click方法中寫入
// 這裡Reset reportViewer除了斷開(?)它和rdlc檔的連結,還有資料來源(dbDataSet/DataSources)的連結 reportViewer1.Reset(); // 如果是使用TableAdapters則在這裡定義 dbDataSetTableAdapters.userinfoTableAdapter ds = new dbDataSetTableAdapters.userinfoTableAdapter(); // 取得TableAdapters資料並塞成DataTable(有助於你要把它塞成資料集時系統好辦視型態) DataTable dt = ds.GetData(); // 將要指定給reportViewer的rdlc路徑給它 // 使用ReportEmbeddedResource後rdlc名稱寫成專案名稱.XXX.rdlc即可不用寫完整路徑 reportViewer1.LocalReport.ReportEmbeddedResource = "Demo.Report2.rdlc"; // 指定資料集,名稱需與rdlc中的相同 reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dt)); reportViewer1.RefreshReport();
比較重要的是要
1.reset reportViewer
2.塞新的rdlc路徑給reportViewer
3.因為reset後DataSources也會清空也要塞新的DataSource(就不一定是TableAdapter
4. Refresh reportViewer若你的DataSource是BeanList
可以參考這篇
沒有留言:
張貼留言