2013年9月16日 星期一

ReportViewer 在VS2010的使用方式(一)

ReportViewer VS2010的使用方式(一)

作者:JB

因為專案需要,所以是第一次使用ReportViewer這個元件。
雖然比一般報表支援更多功能,至於好不好用,則見人見智了。
(不過BUG倒是不少 ~_~

另外我是使用VS2010Microsoft.ReportViewer.WebForms.dll 版本: v2.0.50727
( Namespace :  
Microsoft.Reporting.WebForms.ReportViewer  )


1.      加入一支「index.aspx」並將其設定為起始頁面。




2.      建立資料模型
專案下新增一個Model資料夾,並在裡面加入任何資料模型。 因為是範例,所以我這邊加入一個回傳DataTableClass,並手動產生一些資料。 (實際上你可以使用ADO.NETEF模型皆可)

public class Data
{
   private const String COL_1 = "
姓名";
   private const String COL_2 = "
性別";
   private const String COL_3 = "
電話號碼";

   ///
取得資料
   public DataTable Get()
   {
     DataTable dt = new DataTable();
     dt.Columns.Add( new DataColumn( COL_1 ) );
     dt.Columns.Add( new DataColumn( COL_2 ) );
     dt.Columns.Add( new DataColumn( COL_3 ) );

     ///
加入一些資料
    
for (int i = 0; i < 20; i++)
     {
        String simName = String.Format("JB{0}", i.ToString());
        String simSex = (i%2 ==0) ? "
" :"";
        String simPhoneNum = "09XX-123-456";
        DataRow dr = dt.NewRow();
        dr[COL_1] = simName;
        dr[COL_2] = simSex;
        dr[COL_3] = simPhoneNum;
        dt.Rows.Add(dr);
     }
     return dt;
}
3.      RDLC報表
因為ReportViewer必須搭配Rdlc報表,所以我在專案加入一個Rdlc資料夾,開始新增一個Rdlc報表。

加入一個「報表精靈」...



請從報表精靈設定Rdlc報表的資料集屬性~
名稱: 請自行設定(稍後會使用到)
資料來源
如果您有設定資料模型,這裡就會列出資料模型的名稱。
此範例則顯示本專案名稱。 另外也可以在這邊直接點選【新增】加入一個新的資料庫模型。
可用資料集:資料模型下的資料集或資料表名稱。

設定好之後,右邊會顯示欄位名稱和型別。





選擇可用的欄位。 另外也可以在這邊設定要做群組的資料列或資料行,或是稍後設定。




最後會顯示預覽和樣式選擇,完成報表精靈。



4.      ReportViewer
建好報表後,接下來終於換主角登場。 請在index.aspx放上去一個ReportViewer
另外因為ReportViewer必須搭配ajax,所以請在網頁上加入一個ScriptManager的宣告,否則在執行階段會馬上出現錯誤:「報表檢視器 Web 控制項需要 Web Form 上的 System.Web.UI.ScriptManager」。



點選ReportViewer右上角的設定,選擇報表為剛才新增的Rdlc報表。




JB
這時候直接執行, 出現以下錯誤訊息。 原來是我們剛才的步驟都僅止於設定Rdlc報表、ReportViewer的欄位,至於實際上的資料怎麼進來,還需要另行設計 lol







5.      ObjectDataSource

上面提到ReporViewer的資料來源要另行設計,這個關鍵就是要建立「ObjectDataSource」, 剛才你可能發現了,可以直接在ReportViewer上面直接建立一個ObjectDataSource。 如下圖






資料來源類型請選擇「物件」






選擇SELECT的方法




到這邊就大功造成,可以直接執行來看結果吧!



6.      最後,我們再來複習一下,整個建立ReportViewer的步驟:
u  建立資料模型
u  建立Rdlc報表
u  建立ReportViewer並設定來源報表
u  ReportViewer建立DataSource來源


沒有留言:

張貼留言