逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用資料庫資料來源

本逐步解說會示範如何在 Microsoft Visual Studio 2008 Windows 應用程式專案中建立報表,以及如何將 ReportViewer 控制項加入到 Windows Form,好讓應用程式的使用者可以檢視報表。

必要條件

若要使用這個逐步解說,您必須擁有 AdventureWorks 範例資料庫的存取權。如需詳細資訊,請參閱逐步解說:安裝 AdventureWorks 資料庫

請執行下列步驟,將報表加入 Visual Studio Windows 應用程式專案中。在這個範例中,您要在 Microsoft Visual Basic 中建立應用程式。

建立新的 Windows 應用程式專案

  1. 開啟 Visual Studio 2008。在 [檔案] 功能表中,指向 [開新檔案],再選取 [專案]。

  2. 在 [專案類型] 窗格中,選擇 [Visual Basic]。

  3. 在 [範本] 窗格中,選擇 [Windows 應用程式] 來建立 Microsoft Windows 應用程式。

  4. 在 [名稱] 方塊中,輸入專案的名稱:ReportWalkthrough

  5. 在 [位置] 方塊中,輸入用來儲存專案的目錄,或按一下 [瀏覽] 來導覽找到它。接著會開啟 Windows Form 設計工具,顯示您剛剛建立之專案的 Form1.vb

定義資料來源連接和 DataTable

  1. 在 [專案] 功能表中選取 [加入新項目]。

  2. 在 [加入新項目] 對話方塊中,按一下 [DataSet]。

  3. 輸入資料集的名稱,按一下 [新增]。這樣會將新的 XML 結構描述檔案加入到專案中,並開啟 DataSet 設計工具。預設名稱為 DataSet1.xsd

  4. 在 [DataSet 設計工具] 模式中,開啟 [工具箱],將 [TableAdapter] 拖曳至 DataSet 設計介面。這會開啟 [TableAdapter 組態精靈]。

  5. 在 [選擇資料連接] 頁面中,按一下 [新增連接]。

  6. 在 [資料來源] 對話方塊中,選取 [Microsoft SQL Server]。在 [伺服器名稱] 對話方塊中,輸入 AdventureWorks 所在的伺服器。從資料庫下拉式清單中選取 AdventureWorks,然後按一下 [確定],繼續前往精靈的下一頁。

  7. 在 [將連接字串儲存到應用程式組態檔] 頁面中,輸入連接字串的名稱,或接受預設值 [AdventureWorksConnectionString]。按 [下一步]。

  8. 在 [選擇命令類型] 頁面中,選取 [使用 SQL 陳述式]。確認其他選項按鈕並未選取。

  9. 在 [輸入 SQL 陳述式] 頁面中,輸入下列 Transact-SQL 查詢來從 AdventureWorks 資料庫擷取資料,然後按一下 [完成]。您也可以按一下 [查詢產生器] 按鈕,利用查詢產生器來建立您的查詢,再利用 [執行查詢] 按鈕來檢查它。

    SELECT d.name as Dept, s.Name as Shift, e.EmployeeID 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。如需有關安裝 SQL Server 2005 版本之 AdventureWorks 的詳細資訊,請參閱逐步解說:安裝 AdventureWorks 資料庫

  10. 在 [選擇要產生的方法] 頁面中,接受預設值:含 [方法名稱]: [Fill] 的 [填入 DataTable],以及含 [方法名稱]: [GetData] 的 [傳回 DataTable]。按 [下一步]。

  11. 在 [精靈結果] 頁面中,按一下 [完成]。

  12. 在 DataSet 設計工具頁面上,您應該會看到 DataTable1,其中包含查詢中傳回的資料行。請從 [資料] 功能表中,選擇 [顯示資料來源],展開 [DataTable1] 節點來查看這些資料行。當您在下一個步驟中將資料繫結至報表時,您將會使用 [資料來源] 視窗及 Dept、Shift 和 EmployeeID 等欄位。

設計報表

  1. 在 [專案] 功能表中選取 [加入新項目]。

  2. 在 [加入新項目] 對話方塊中,按一下 [報表]。

  3. 輸入報表檔案的名稱。預設的報表名稱為 Report1.rdlc。按一下 [加入]。報表設計工具會開啟,並顯示代表報表頁面的點線介面。

  4. 開啟 [工具箱]。按一下文字方塊,然後按一下表單。

  5. 在文字方塊中輸入報表標題:# of Employees per Shift per Dept

  6. 從工具箱將 [矩陣] 報表項目拖曳到文字方塊底下的報表上。

  7. 從 [資料來源] 視窗展開 DataTable1,即可查看 Dept、Shift 和 EmployeeID 等資料行。將 Dept 欄位拖曳到矩陣中第一個資料行、第二個資料列的 [資料列] 文字方塊。

  8. 將 Shift 欄位拖曳到矩陣中第二個資料行、第一個資料列的 [資料行] 文字方塊。當選取此文字方塊時,請將 TextAlign 屬性設定為 Right。按一下 [報表格式] 工具列上的 B 圖示,即可使用粗體字型。

  9. 按一下矩陣中的任何地方,選取矩陣資料區。然後以滑鼠右鍵按一下並依據名稱選取矩陣 (預設值為 matrix1)。矩陣報表項目周圍將會出現外框。以滑鼠右鍵按一下外框,並選取 [屬性]。檢查開啟之對話方塊的標題為 [矩陣屬性]。

  10. 按一下 [群組] 索引標籤。在 [資料行] 區段中,按一下 [編輯]。

  11. 在 [排序及群組] 對話方塊中,按一下 [排序] 索引標籤。

  12. 按一下 [運算式] 底下的第一個方塊,以啟動文字方塊,然後按一下下拉箭頭,並選取 =Fields!Dept.Value。如此可確保報表資料將會依據部門名稱來排序。

  13. 從 [資料來源] 視窗,將 EmployeeID 欄位拖曳到矩陣中第二個資料行、第二個資料列的 [資料] 文字方塊。以滑鼠右鍵按一下此文字方塊,然後選取 [屬性]。

  14. 在 [屬性] 視窗的 [一般] 索引標籤上,按一下運算式 (fx) 按鈕,以叫用運算式編輯器。

  15. 編輯預設 Sum 彙總函數,並將它變更為 Count。您可以叫用運算式編輯器,其方式是以滑鼠右鍵按一下文字方塊,並選擇 [屬性]。運算式的內容應該如下:

    =Count(Fields!EmployeeID.Value)
    

將 ReportViewer 控制項加入應用程式中

  1. 在 [方案總管] 中,以滑鼠右鍵按一下 Form1.vb,並選擇 [檢視設計],在設計模式中開啟表單。

  2. 在 [表單] 屬性視窗中,按一下 + 展開 [大小] 屬性。將表單 [高度] 設定為 700。

  3. 從 Visual Studio 工具箱的 [資料] 區段中,按一下 ReportViewer 圖示,並按一下表單。請依照需要來調整您的表單寬度和 ReportViewer 控制項寬度。

  4. 按一下右上角的三角形來開啟 ReportViewer 控制項的智慧標籤面板。按一下 [選擇報表] 下拉式清單,並選取 Report1.rdlc。選取報表會自動建立報表中使用之資料來源的執行個體。這會產生程式碼來具現化 DataSet (DataTable 的 ADO.NET 容器)、TableAdapter 元件,以及對應於報表中使用的每個資料來源之 BindingSource 物件。

  5. 在開啟的智慧標籤面板中,選擇 [停駐於父容器中]。

建立和執行應用程式

  1. 在 [建立] 功能表中,按一下 [建立 ReportWalkthrough]。在建立過程中,會編譯報表。某些錯誤 (例如用於報表中的運算式語法錯誤) 會加入到 [工作清單] 中加以註明。

  2. 按 F5 鍵,執行應用程式及檢視表單中的報表。

另請參閱

參考

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

概念

使用 [ReportViewer 工作] 智慧標籤面板

其他資源

範例和逐步解說