逐步解說:建立 ReportViewer 報表
本逐步解說會示範如何在以 AdventureWorks2008 範例資料庫為基礎的 Visual Studio Windows Form 應用程式專案內建立簡單資料表報表。您將使用報表精靈將報表加入至專案以及將 ReportViewerWindows Form 控制項加入至 Windows Form,好讓應用程式的使用者可以檢視報表。
如需使用 Visual Studio 報表設計工具來設計報表的詳細資訊,請參閱報表設計工具 (Visual Studio)。
必要條件
若要使用這個逐步解說,您必須擁有 AdventureWorks2008 範例資料庫的存取權。這個逐步解說中使用的查詢不適用於舊版 AdventureWorks。如需有關如何取得 AdventureWorks2008 範例資料庫的詳細資訊,請參閱逐步解說:安裝 AdventureWorks 資料庫。
此逐步解說假設您已經熟悉 Transaction-SQL 查詢及 ADO.NET DataSet 和 DataTable 物件。
若要建立新的 Windows Form 應用程式專案
開啟 Visual Studio。在 [檔案] 功能表中,指向 [開新檔案],再選取 [專案]。
在 [已安裝的範本] 窗格中,展開 [其他語言],然後選取 [Visual Basic]。
選擇 [Windows Form 應用程式]。
在 [名稱] 方塊中,輸入 SimpleReport。
在 [位置] 方塊中,輸入用來儲存專案的目錄,或按一下 [瀏覽] 來導覽找到它。
按一下 [確定]。
接著會開啟 Windows Form 設計工具,顯示您剛剛建立之專案的 Form1。
按一下表單。選擇 [檢視] 功能表中的 [屬性視窗]。展開 [大小] 屬性,以顯示 [寬度] 和 [高度]。將 [寬度] 設定為 500 像素。
若要定義資料集和資料表
選取 [專案] 功能表上的 [加入新項目]。
在 [加入新項目] 對話方塊中,按一下 [資料集]。輸入資料集的名稱,並按一下 [加入]。預設名稱為 DataSet1.xsd。
這樣會將新的 XSD 檔案加入到專案中,並開啟 DataSet 設計工具。
從 DataSet 設計工具的 [工具箱] 將 TableAdapter 控制項拖曳至設計介面上。
這樣會啟動 [TableAdapter 組態精靈]。
在 [選擇資料連接] 頁面中,按一下 [新增連接]。
如果這是第一次在 Visual Studio 中建立資料來源,您會看到 [選擇資料來源] 頁面。在 [資料來源] 方塊中,選取 [Microsoft SQL Server]。
在 [加入連接] 對話方塊中,執行下列步驟:
在 [伺服器名稱] 方塊中,輸入 AdventureWorks2008 資料庫所在的伺服器。
預設 SQL Server Express 執行個體為 (local)\sqlexpress。
在 [登入伺服器] 區段中,選取提供您存取資料的選項。[使用 Windows 驗證] 為預設。
按一下 [選取或輸入資料庫名稱] 下拉式清單中的 AdventureWorks2008。
按一下 [確定] 繼續回到精靈,然後按 [下一步]。
如果您在上一個步驟中指定 [使用 SQL Server 驗證],請選取要在字串中包含敏感性資料還是在應用程式的程式碼中設定此資訊之選項。
在 [將連接字串儲存到應用程式組態檔] 頁面中,輸入連接字串的名稱,或接受預設值 AdventureWorks2008ConnectionString。按 [下一步]。
在 [選擇命令類型] 頁面上選取 [使用 SQL 陳述式],然後按 [下一步]。
在 [輸入 SQL 陳述式] 頁面中,輸入下列 Transact-SQL 查詢來從 AdventureWorks2008 資料庫擷取銷售資料,然後按一下 [完成]:
--SET DATEFORMAT mdy SELECT PC.Name AS Category, PS.Name AS Subcategory, DATEPART(yy, SOH.OrderDate) AS Year, 'Q' + DATENAME(qq, SOH.OrderDate) AS Qtr, SUM(DET.UnitPrice * DET.OrderQty) AS Sales FROM Production.ProductSubcategory PS INNER JOIN Sales.SalesOrderHeader SOH INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN Production.Product P ON DET.ProductID = P.ProductID ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID WHERE (SOH.OrderDate BETWEEN ('20020101') AND ('20031231')) GROUP BY DATEPART(yy, SOH.OrderDate), PC.Name, PS.Name, 'Q' + DATENAME(qq, SOH.OrderDate), PS.ProductSubcategoryID
您也可以按一下 [查詢產生器] 按鈕,並使用 [查詢產生器] 來建立查詢,然後使用 [執行查詢] 按鈕來進行驗證。
按一下 [完成]。
DataSet 設計工具現在會顯示 DataTable1 的 DataTable 定義,其中包含的欄位是根據查詢之資料行和資料行別名而命名 (Category、Subcategory、Year、Qtr 和 Sales)。當您將資料繫結到報表時,您將會使用這些欄位。
[!附註]
如果您需要在資料表中變更欄位,請以滑鼠右鍵按一下 [DataSet 設計工具] 頁面上的 DataTable1 標頭或 DataTable1TableAdapter 標頭。選擇 [設定],這樣會重新啟動 [TableAdapter 組態精靈]。
儲存 DataSet1 檔案。
若要使用報表精靈建立新的報表定義檔案
選取 [專案] 功能表中的 [加入新項目]。
在 [加入新項目] 對話方塊中,選擇 [報表精靈]。
在 [名稱] 中,輸入 Sales Orders.rdlc,再按一下 [加入]。
圖形設計介面隨即在對話方塊後面開啟。
在 [資料集屬性] 頁面中,選取 [資料來源] 下拉式清單中您所建立的資料集。
[可用資料集] 方塊隨即自動更新為您所建立的 DataTable。
按 [下一步]。
在 [排列欄位] 頁面中,執行下列動作:
將 [Category] 從 [可用的欄位] 拖曳至 [資料列群組] 方塊。
將 [Subcategory] 從 [可用的欄位] 拖曳至 [資料列群組] 方塊中 [Category] 的下方。
將 [Year] 從 [可用的欄位] 拖曳至 [資料行群組] 方塊。
將 [Qtr] 從 [可用的欄位] 拖曳至 [資料行群組] 方塊中 [Year] 的下方。
將 [Sales] 從 [可用的欄位] 拖曳至 [值] 方塊。
按 [下一步] 兩次,然後按一下 [完成]。
這會建立 .rdlc 檔案並在報表設計工具中開啟檔案。您所設計的 Tablix 現在會顯示在設計介面中。
若要將標題加入至報表
按一下設計工具介面上的 Tablix,使資料行和資料列控點出現在資料表的上面和旁邊。
[!附註]
控點是出現在 Tablix 上面和旁邊的灰色方塊。您可以利用控點來執行資料行群組、資料列群組和 Tablix 本身的各種動作。橫跨 Tablix 頂端的控點是資料行控點。沿著 Tablix 旁邊向下的控點是資料列控點。資料行控點和資料列控點相會的控點是角控點。
按一下角控點選取整個 Tablix,以顯示交叉箭頭。
拖曳交叉箭頭,在設計介面向下移動 Tablix。
將 [文字方塊] 項目從 [工具箱] 拖曳至設計介面中 Tablix 的上方區域時,然後使用交叉箭頭將它定位。
在已選取文字方塊時,輸入 Company Sales。必要時拖曳文字方塊框線,將它展開。
在已選取文字方塊時,按一下 [報表格式] 工具列中的 [粗體] 按鈕,然後選取 [字型大小] 方塊中的 16pt。
在已選取文字方塊時,按一下 [報表格式] 工具列中的 [前景色彩] 按鈕。
在 [選擇色彩] 對話方塊中,選取 [黑藍] 色,然後按一下 [確定]。
將 ReportViewer 控制項加入至表單
在 [方案總管] 中,按一下 Form1.vb。
選擇 [檢視] 功能表中的 [設計工具]。
從工具箱的 [報告] 區段中,將 ReportViewer 控制項拖曳至表單上。
按一下右上角的智慧標籤圖像來開啟 ReportViewer1 控制項的智慧標籤面板。按一下 [選擇報表] 下拉式清單,並選取 SimpleReport.Sales Orders.rdlc。
從智慧標籤面板中,按一下 [停駐於父容器中]。
在本逐步解說的其餘部分中,您可以建立應用程式,並隨時檢視表單中的報表。如果您想要查看報表設計的累加變更如何影響結束報表,請依照下列每一個程序的最後一個步驟來建立及檢視報表。
(選擇性) 按 F5 鍵,建立應用程式及檢視表單中的報表。
若要將貨幣欄位格式化
在 Sales Orders.rdlc 檔案的 [報表設計工具] 視窗中,以滑鼠右鍵按一下含有 [Sum(Sales)] 值的左上方資料格,然後按一下 [文字方塊屬性]。
選取 [數字] 索引標籤。
在 [類別目錄] 清單中,選取 [貨幣]。
在 [符號] 清單中選取 [英文 (英國)]。
按一下 [確定] 關閉對話方塊。
對具有 [Sum(Sales)] 值的所有其他資料格執行相同步驟。
(選擇性) 按 F5 鍵,建立應用程式及檢視報表。觀察數字格式的變更。請注意,未針對目前版本進行任何轉換,只會變更數字格式。
若要將 Tablix 配置格式化
在 Sales Orders.rdlc 檔案的 [報表設計工具] 視窗中,拖曳游標以選取 Tablix 左上角的兩個空白資料格。
以滑鼠右鍵按一下選取的資料格,再按一下 [合併資料格]。
以滑鼠右鍵按一下合併的資料格,然後選擇 [文字方塊屬性]。
按一下 [框線] 索引標籤。在 [預覽] 區域中,按一下框線拖曳按鈕,以移除上框線和左框線。
按一下 [確定]。
按一下 Tablix 顯示其控點。針對具有標頭 Subcategory 的資料行,拖曳資料行控點右側,展開資料行寬度。如此一來,可以防止標頭文字換行至下一行。
按 F5 鍵,建立應用程式及檢視報表。
請參閱
參考
LocalReport.SubreportProcessing
LocalReport.SubreportProcessing
概念
其他資源
Designing and Implementing Reports Using Report Designer (Reporting Services)