ReportViewer元件是VS預設好的工具,它是一個報表瀏覽器,可用於顯示傳統()或交叉表(矩陣式)報表。ReportViewer元件既可以在Web程序中使用,也可以在Windows中被使用。首先,我們透過下面這張圖,來了解Report Viewer的基本架構。

從上圖中可以看出,Report ViewerSever端結構同以往建立Server端專案(Project),我們可以透過InfoCommand來對資料庫進行連接與下達查詢語句。在Client端透過InfoDataSet(Windows)/WebDataSet(Web)作為資料的容器與Server端交互取得資料,並將資料交于infoBindingSource(Windows)/WebDataSource(Web)

之前我們已說過,Report Viewer其實是一個報表的瀏覽器,那麼它到底瀏覽的實體是什麽呢?又是如何得到瀏覽的資料?在圖中可以發現,有兩個箭頭指向Report Viewer,一個為rdlc檔案,另一個為infoBindingSource/WebDataSource

rdlc我們所說的報表檔案格式rdlc意義為Report Definition Language Client-side processing從它的名稱上便可以凸顯出它在Client端的處理能力,rdlc最初是被用於SQL Server for XML上,用報表定義顯示資料結構,實際上rdlc也是一種XML檔案格式,這就意味著在程式中很容易更改它的結構與內容,此將造就了它的靈活度與可訂製性,因此被廣泛使用。而rdlc所需的資料結構則通過InfoDataSet/WebDataSet所產生的xsd(XML Schema Definition)檔案來提供,在EEP2012中可以透過這兩個元件的右鍵”Create XSD File”來自動產生。

 有了報表rdlc檔案後只需Report Viewer得到相應的資料源即infoBindingSource/ WebDataSource便可將資料顯示出來。當然僅僅是顯示資料的功能是不夠的,Report Viewer提供了ExcelPDF兩種檔案的輸出方式來印表或eMail傳輸等等。

 

在上述的概說內容中,ReportViewer需要選擇一個rdlc檔案作為報表的顯示來源,如果你使用傳統的ReportViewerDesign a new report是會比較繁瑣,同時要完成整個報表的產生還需開發人員自行設定較多的檔案,包括產生xsd文件,設置ReportViewer等。因此如果你使用了EEP2012新的Report Wizard,將會為設計者帶來快速開發的便利, Wizard可以將自動從產生一個Client的專案(Project),到xsd檔案產生,再至rdlc文件產生一氣呵成。開發人員只需Step By Step設定一些基本屬性,Wizard便可自動從頭到尾產生一個可以直接執行的美觀報表,當然有些基本的設定同樣可以透過Template的方式來預先設定,好讓報表產生時不必每次都例行去進行修改。

Step1>       Tools中找到EEP Wizard選擇Create Window Report,表要創建一個Windows的報表工程。

Step2>       選擇所需要創建的報表類型,這裡選擇ReportViewer

Step3>       在創建報表前,先選擇所要連接的資料庫類型、資料庫的名稱。資料庫的類型一共提供了ctNonectMsSqlctOleDBctOraclectODBCctMySql六種選擇,資料庫名稱中選擇的是EEPNetServer中所設定的資料庫名稱,如下圖。

Step4>       接著設定用來產生ReportViewerWindow form程式,因此,我們需先確定產生專案的名稱。如下:

Step5>       設定Client端所要的資料源,我們選擇之前Server端所產生的S001.dllMaster這裡需要注意的是:如果此報表要列印Master-Details的多階資料結構時,必須在下圖的Master-Details中勾選,此因為為單檔,所以我們將不勾選。接著,請按Done按鈕之後,Wizard就會產生一個Window form的專案,同時也會自動Create一個XSD檔案,該XSD檔案將會與Form同名,此處的Form檔案裡會產生一個Report Viewer

Step6>       到此,開發人員點選Done後,Wizard畫面並不會關閉,因為它在產正完成Window form之後,尚不能功成身退,往下需接著設定產生rdlc的設定項目,如下說明

  project name: 用來存放該報表所在的專案,這裡會自動將之前產生的專案名稱自動帶入。

xsd name: xsdXML Schema Definition,用於定義資料結構,該屬性用在Report Viewer所需要使用的結構檔案名稱。

Target: 該屬性用來設定rdlc格式檔案名稱,如果想開發Master/Detail報表的話,這裡可以設定MasterDetail兩種報表檔案

Layout: 指報表外觀設定,用來決定此報表的標題抬頭,報表是否有Master-Details的資料源,以及report它的顯示風格。在此我們提供了Label(標籤直式顯示格式)Table(表單橫式顯示格式)等兩種顯示風格,當報表為Label風格時,可以設定一行有多個欄位顯示。本例中選擇Table的方式,report Caption則設為『客戶資料表』。

Step7>       接著再按Next後,此時Wizard會列出你所選的資料源的欄位(xsd中得知),及Group By的欄位(以哪些欄位作為群組的欄位),如下圖,左邊就是選擇要列印哪些欄位,右邊區域就是選擇哪些欄位需要Group By。最後按下Done代表結束Wizard

Step8>       這樣Wizard會自動產生一個打開ReportWindow Form,在這個Form上有一個ClientQuery的元件,可以對報表進行查詢。下面在這個ClientQueryBindingSource設定為ibsMaster,並添加一個查詢條件如下:

Step9>       按照上面的步驟便可產生一個命名為Form1.rdlc的報表,在下圖為報表按照之前的設定的內容顯示出效果,當然,設計人員也可以對報表事後的美化工作,此報表的顯示風格是以Table(表格多筆) 為顯示標准的。在打開Rdlc時,系統會提示是否轉換格式,請選擇確定。

Step10>    雙擊每個ColumnCaption的框格,可以對Caption進行修改

Step11>    修改完成后,請將該專案重新建置。然后在EEPManager中設定權限,添加一個客戶管理報表,並設定權限

Step12>    最後,我們可以透過EEPNetClient的功能,來看一下設計後的效果吧,下面就是以Table顯示風格生成的報表,我們可以透過ReportViewer提供的工具欄來進行報表的上下頁的翻頁。

如果使用者希望能夠將報表印表出來或透過EMail輸,當然Report Viewer也提供了Excel/PDF/Word文件的輸出格式,只需要在ReportViewer中選擇出輸出的類型,點選換『PDF』,即可將此報表輸出成檔案,以下為我們選擇PDF的一個案例

 

 

 



訊光科技系統股份有限公司

Converted from CHM to HTML with chm2web Pro 2.85 (unicode)