建立報表的資料來源

ReportViewer 控制項的處理模式會決定您可以在報表上使用的資料類型。

在 SQL Server 2005 報表伺服器上處理報表的遠端處理模式中,報表伺服器上的資料處理延伸模組會決定您可以使用的資料來源類型。預設資料處理延伸模組適用於 SQL Server、Analysis Services、SQL Server Integration Services、Oracle、SAP NetWeaver® Business Intelligence、XML、ODBC 和 OLE DB。當您在 Business Intelligence Development Studio (這是 SQL Server 2005 中隨附的報表設計工具) 中建立報表時,可以在設計階段於報表定義中指定資料來源的連接以及可擷取報表資料的查詢。當您將查詢傳回的欄位拖曳到報表設計介面上時,可以在報表中使用這些欄位。如需有關如何在伺服器報表中處理資料的詳細資訊,請參閱《SQL Server 線上叢書》中的連接至資料來源 (Reporting Services)

在由應用程式內的控制項處理報表的本機處理模式中,您可以使用 Visual Studio 資料來源和欄位來定義報表上的資料。設計階段會於應用程式專案內定義資料來源的連接以及可擷取報表資料的查詢。任何來源的資料只要可以提供為 ADO.NET DataTable 或可列舉的商務物件集合,用戶端報表就可以使用該資料。資料表或商務物件會傳回此報表可以使用的欄位清單。欄位包含資料庫欄位的指標和名稱屬性。您可以將欄位從 [資料來源] 視窗中拖曳至報表配置上。

繫結報表中的資料

報表定義會使用資料區將資料繫結至報表。您可以從各種資料區進行選擇,以便在報表中支援不同的資料結構。可用於報表定義中的資料區例子包括資料表、矩陣、圖表和清單。若要繫結報表中的資料,您必須執行以下作業:

  • 定義您想用於報表中的資料來源和資料集 (您可以使用本主題提供的資訊和連結來了解其作法)。[資料來源] 視窗會顯示您可以使用的資料來源和欄位。

  • 將您想要使用的資料區從報表工具箱拖曳至設計介面上。

  • 將個別欄位從 [資料來源] 視窗拖曳到資料區上。

    每個資料區都可以使用單一資料集中的欄位。ReportViewer 控制項和報表伺服器都無法執行不同資料集之間的聯結。例如,如果您要使用商務物件,則必須在商務物件內執行聯結。如需有關資料區的詳細資訊,請參閱在報表中加入資料區 (Visual Studio 報表設計工具)

如何加入 ReportViewer 報表的資料來源

建議您利用下列方法來設定資料來源,以便在用戶端報表定義中使用它。

  • 將資料來源加入應用程式專案中,再設定對於基礎資料的資料連接。如果是基礎資料存放區,請選取您要使用的特定資料。在 [資料來源] 視窗中,報表中所要使用的資料必須可用。如果是資料表,資料來源會顯示從查詢中傳回的資料行名稱。如果是可列舉的商務物件集合,資料來源會顯示類別物件所公開的簡單資料類型之公用屬性清單。

  • 若要建立資料表,請將資料集加入專案中,再利用 [TabaleAdapter 精靈] 來設定資料表。[TabaleAdapter 精靈] 會提供查詢產生器及資料預覽功能,供您立即確認查詢結果。

  • 若要建立商務物件,請利用 [專案] 功能表中的 [加入新項目] 命令,選取 [類別] 專案。請提供公開簡單資料類型的公用屬性,供設計階段使用的實作。請提供傳回可列舉的屬性集合,供執行階段使用的方法。

設定好資料來源之後,在 [資料來源] 視窗內的階層中,會出現可繫結的資料。若要將資料繫結到報表,請將展開階層中的節點拖曳至報表配置中的文字方塊或資料區域。如果您後來又在定義好報表之後修改資料集,您必須更新報表和控制項中的資料繫結。如需詳細資訊,請參閱更新及重新繫結資料來源參考 (Visual Studio 報表設計工具)

您的專案中可以有任意數目的資料來源。若要檢視報表實際使用的資料來源清單,請在 [報表] 功能表中,選擇 [資料來源]。若要在應用程式中預覽報表及其資料,您必須建立或部署應用程式來確認報表包含您預期的資料。如需有關設定控制項和定義報表配置的詳細資訊,請參閱設定 ReportViewer 的本機處理建立用戶端報表定義檔案 (.rdlc)

若要立即開始作業,請利用下列逐步解說來了解如何將每個資料來源類型加入專案中:

使用商務物件

商務物件是任何公開簡單資料類型之公用屬性的應用程式物件。商務物件的範例可能包括基礎資料存放區的 Customer 物件集合、應用程式所建立的 Book Title 物件陣列,或您從 RSS XML 來源建立的 Channel 物件清單。

若要能夠做為資料來源來進行存取,集合必須支援 IEnumerable。可繫結的資料會出現在 [資料來源] 視窗內的階層式檢視中。如果是商務物件,資料來源會顯示類別物件所公開的簡單資料類型之公用屬性清單。之後,您便可以在報表定義中,將它們繫結到資料區域和文字方塊。

若要提供商務物件的集合,您可以將類別加入專案中,或將對於類別組件的參考加入專案中。

使用資料表

DataTable 是 ADO.NET DataSet 的一部份,您很容易從 [專案] 功能表中,選取 [加入新項目] 來將它加入專案中。若要設定資料連接,請啟動 [TableAdapter 組態精靈]。從 [資料] 功能表中,選取 [加入],再選取 [TableAdapter]。您也可以定義一項查詢來限制結果集。精靈完成之後,便能夠利用 [資料來源] 視窗來存取 DataTable 中的資料行,您可以在用戶端報表定義中,將它們繫結到資料區域和文字方塊。

定義 ReportViewer Web 伺服器控制項的資料來源

資料來源控制項提供抽象資料存取層次的支援,使網頁中的控制項能夠繫結到資料來源,資料來源能夠繫結到實際的資料。這可讓您不需要將每個控制項重新繫結到每個資料片段,就能夠有效變更資料來源。

當您設計網頁時,[工具箱資料] 區段會列出多個資料來源控制項,如 SqlDataSourceXmlDataSource。有些資料來源控制項會在網頁中提供分頁記憶體支援,有些資料來源控制項則使用共用資料。報表並不使用分頁記憶體,因此,ReportViewer Web 伺服器控制項的最佳選擇是使用 ObjectDataSource 控制項。這個控制項提供記憶體中的快取物件 (DataTables 或商務物件集合) 和報表資料區域之間的橋樑。當您將 ReportViewer 控制項加入網頁時,會自動加入和設定 ObjectDataSource 控制項。

為了將撰寫額外程式碼的需求降到最低,網頁的 ASP.NET 支援提供額外的幕後處理來偵測提供可繫結之商務物件的集合。當您將類別加入專案來傳回可識別為商務物件的物件集合時,集合會自動加入 [網站資料來源] 視窗中。

另請參閱

參考

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

概念

設定 ReportViewer 的遠端處理
更新及重新繫結資料來源參考 (Visual Studio 報表設計工具)

其他資源

TableAdapter 概觀
範例和逐步解說