如何製作LocalReport-簡易版(上)
如果想要在visual studio上製作reportviewer
但所連結的是local report的話,可以使用下列的方式製作
但在此還是要說一下localreport 的優缺點,個人認為啦
優點:可以不用依付sql server的reporting services ,可以獨立運作,且可以利用程式的優點,處理複雜的商業邏輯之後,再把資料集丟給localreport去呈現
缺點:無法即時預覽,只能在建置後才能看到結果,這是指相較於ServerReport,但vs2005版及vs2008版的reportviewer的功能還是一樣有問題,就是匯出到excel後,無法呈現子報表的內容,這個問題在sql server2008的reporting services有獲得解決…但,微軟怎沒有出sp啊,修正一下嘛..
好啦!回到正題
在你的專案中加入一個localreport的檔案
接下來我們加入一個資料集,這個資料集,是用來在畫面拉欄位用的
接下來我們連接的資料庫是sql server
我是以 AdventureWorks的資料庫當作範例,我拉二個資料表進來當作測試
如果想要修改查詢的欄位的話,可以照下圖的方式設定修改
在標題的地方,按滑鼠右鍵選設定
在下方的畫面就可以更改sql指令囉!亦或使用”查詢產品器”也可以
以上的設定做完後,記得要建置一下專案,不然在localreport會找不到欄位可以拉
接下來回到localreport的畫面 ,拉出一個資料表控制項,然後再從資料來源隨便拉一個欄位到資料表中
然後專案再加入一個aspx的網頁檔
在這個網頁檔中插入一個reportviewer元件
在畫面先拉出查詢項目
在查詢按鈕的事件中,程式如下
1: protected void Button1_Click(object sender, EventArgs e)
2: {
3: this.ReportViewer1.LocalReport.DataSources.Clear();
4: DataSet ds = dal_Product.SelectForReport(this.TextBox1.Text);
5: this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("Product", ds.Tables["product"]));
6: this.ReportViewer1.LocalReport.Refresh();
7:
8: }
9:
先將LocalReport資料清掉,再自行呼叫過濾資料的function,然後再塞回LocalReport.DataSources
若有多個可以一直add
紅色字的部份,要跟你的localreport的資料來源名稱一樣才可以
如何知道localreport的資料來源名稱,先切換到report的設計畫面,然後照下圖點選
這裡就可以看到你的report是會有那些資料來源,在程式中紅色的部份,就要打這個名稱
‧覺得文章不錯請給我一個『讚』作為鼓勵喔!