逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用資料庫資料來源
本逐步解說會示範如何在 Windows Form 應用程式專案中建立報表,以及如何將 ReportViewer 控制項加入到 Windows Form,好讓應用程式的使用者可以檢視報表。
必要條件
若要使用這個逐步解說,您必須擁有 AdventureWorks2008 範例資料庫的存取權。如需詳細資訊,請參閱逐步解說:安裝 AdventureWorks 資料庫。
請執行下列步驟,將報表加入 Windows Form 應用程式專案中。在這個範例中,您會在 Microsoft Visual Basic 中建立應用程式。
建立新的 Windows 應用程式專案
開啟 Visual Studio。在 [檔案] 功能表中,指向 [開新檔案],再選取 [專案]。
選擇 [已安裝的範本] 窗格中的 [Visual Basic],然後選擇 [Windows Form 應用程式]。根據 Visual Studio 中的啟動設定,Visual Basic 節點可能位於 [其他語言] 底下。
在 [名稱] 方塊中,輸入專案的名稱:ReportWalkthrough。
在 [位置] 方塊中,輸入用來儲存專案的目錄,或按一下 [瀏覽] 來導覽找到它。
按一下 [確定]。
接著會開啟 Windows Form 設計工具,顯示您剛剛建立之專案的 Form1.vb。
定義資料來源連接和 DataTable
選取 [專案] 功能表上的 [加入新項目]。
在 [加入新項目] 對話方塊中,按一下 [資料集]。
輸入資料集的名稱,按一下 [新增]。這樣會將新的 XML 結構描述檔案加入到專案中,並開啟 [DataSet 設計工具]。預設名稱為 DataSet1.xsd。
在 [DataSet 設計工具] 中,開啟 [工具箱],將 TableAdapter 拖曳至 DataSet 設計介面。這會開啟 [TableAdapter 組態精靈]。
在 [選擇資料連接] 頁面中,按一下 [新增連接]。
如果這是第一次在 Visual Studio 中建立資料來源,您會看到 [選擇資料來源] 頁面。在 [資料來源] 方塊中,選取 [Microsoft SQL Server]。
在 [加入連接] 頁面上,執行下列步驟:
在 [伺服器名稱] 方塊中,輸入 AdventureWorks2008 資料庫所在的伺服器。
預設 SQL Server Express 執行個體為 (local)\sqlexpress。
在 [登入伺服器] 區段中,選取提供您存取資料的選項。[使用 Windows 驗證] 為預設。
從下拉式清單中,按一下 AdventureWorks2008。
按一下 [確定] 繼續回到精靈。
如果您在上一個步驟中指定 [使用 SQL Server 驗證],請選取要在字串中包含敏感性資料還是在應用程式的程式碼中設定此資訊之選項。
按 [下一步]。
在 [將連接字串儲存到應用程式組態檔] 頁面中,輸入連接字串的名稱,或接受預設值 AdventureWorks2008ConnectionString。按 [下一步]。
在 [選擇命令類型] 頁面上選取 [使用 SQL 陳述式],然後按 [下一步]。
在 [輸入 SQL 陳述式] 頁面中,輸入下列 Transact-SQL 查詢來從 AdventureWorks2008 資料庫擷取資料,然後按一下 [完成]。
SELECT d.name as Dept, s.Name as Shift, e.BusinessEntityID as EmployeeID FROM (HumanResources.Department d INNER JOIN HumanResources.EmployeeDepartmentHistory e ON d.DepartmentID = e.DepartmentID) INNER JOIN HumanResources.Shift s ON e.ShiftID = s.ShiftID
您也可以按一下 [查詢產生器] 按鈕,利用查詢產生器來建立您的查詢,再利用 [執行查詢] 按鈕來檢查它。如果查詢未傳回預期的資料,您可能使用了舊版的 AdventureWorks。如需有關安裝 AdventureWorks2008 版本之 AdventureWorks 的詳細資訊,請參閱逐步解說:安裝 AdventureWorks 資料庫。
在 [選擇要產生的方法] 頁面中,按一下 [完成]。
在 DataSet 設計介面上,您應該會看到 DataTable1,其中包含查詢中傳回的資料行。
使用報表精靈設計報表
選取 [專案] 功能表上的 [加入新項目]。
在 [加入新項目] 對話方塊中,按一下 [報表精靈]。
輸入報表檔案的名稱。預設的報表名稱為 Report1.rdlc。按一下 [加入]。
這會啟動 [報表精靈]。
在 [資料集屬性] 頁面中,選取 [資料來源] 方塊中您所建立的資料集。
[可用資料集] 方塊隨即自動更新為您所建立的 DataTable。
按 [下一步]。
在 [排列欄位] 頁面中,執行下列動作:
將 [Dept] 從 [可用的欄位] 拖曳至 [資料列群組] 方塊。
將 [Shift] 從 [可用的欄位] 拖曳至 [資料行群組] 方塊。
將 [EmployeeID] 從 [可用的欄位] 拖曳至 [值] 方塊。
按一下 [ Sum(EmplyeeID)] 旁的箭頭,然後選取 [Count]。
按 [下一步] 兩次,然後按一下 [完成]。
這會建立 .rdlc 檔案並在報表設計工具中開啟檔案。您所設計的 Tablix 現在會顯示在設計介面中。
儲存 .rdlc 檔案。
將 ReportViewer 控制項加入應用程式中
在設計模式中開啟專案中的 Form1.vb 檔案。
在 [表單] 屬性視窗中,按一下 [大小] 屬性,然後將 [高度] 屬性設為 700。
從工具箱的 [報告] 區段中,將 ReportViewer 控制項拖曳至表單上。
按一下右上角的智慧標籤圖像來開啟 ReportViewer 控制項的智慧標籤面板。按一下 [選擇報表] 下拉式清單,再選取您剛建立的報表。選取報表會自動建立報表中使用之資料來源的執行個體。這會產生程式碼來具現化 DataSet (DataTable 的 ADO.NET 容器)、TableAdapter 元件,以及對應於報表中使用的每個資料來源之 BindingSource 物件。
在開啟的智慧標籤面板中,選擇 [停駐於父容器中]。
建立和執行應用程式
按一下 [建置] 功能表上的 [建立 ReportWalkthrough]。在建立過程中,會編譯報表。某些錯誤 (例如用於報表中的運算式語法錯誤) 會加入到 [工作清單] 中加以註明。
按 F5 鍵,執行應用程式及檢視表單中的報表。
請參閱
參考
ReportViewer.Drillthrough
LocalReport.SubreportProcessing
ReportViewer.Drillthrough
LocalReport.SubreportProcessing