教學課程:建立基本資料表報表 (報表產生器)
您可以使用 SQL Server Reporting Services (SSRS) 中的 Report Builder,為您的 SQL 資料建立資料表報表。 本教學課程會示範如何根據範例銷售資料建立基本資料表報表。
在本教學課程中,您已:
- 遵循精靈步驟來建立資料表報表
- 識別資料表資料的內嵌來源
- 執行查詢以取得資料值
- 組織和格式化資料表資料,並新增總計
- 設計和儲存報表
- 在 Microsoft Excel 中檢閱匯出的報表
完成此教學課程的估計時間:20 分鐘。
下圖顯示您在本教學課程中建立的資料表報表:
必要條件
如需有關需求的詳細資訊,請參閱教學課程的必要條件 (報表產生器)。
使用資料表或矩陣圖精靈建立報表
您可以使用資料表或矩陣精靈建立資料表報表。 精靈有兩種設計模式:[報表] 和 [共用資料集]。 在報表設計模式中,您可以在 [報表資料] 窗格中指定資料,並且在設計介面上設定報表配置。 在共用資料集設計模式中,您可以建立資料集查詢,以便與其他人共用。 在本教學課程中,您可以使用報表設計模式。
啟動精靈並建立基本資料表報表:
從電腦、Reporting Services 入口網站或 SharePoint 整合模式啟動 Report Builder。
[新報表或資料集] 對話方塊隨即開啟。 如果對話方塊未開啟,請選取 [檔案]>[新增]。
選取 [新增報表] 索引標籤,然後選取右窗格中的 [資料表或矩陣圖精靈]:
指定資料連線
資料連線包含連線至外部資料來源的資訊,例如 SQL Server 資料庫。 通常您會向資料來源擁有者取得連接資訊以及要使用的認證類型。 若要指定資料連線,您可以使用來自報表伺服器的共用資料來源,或是建立僅在此報表中使用的內嵌資料來源。
在本教學課程中,使用內嵌資料來源。 若要深入了解如何使用共用資料來源,請參閱取得資料連線的替代方式 (報表產生器)。
建立資料連線的內嵌資料來源:
在 [選擇資料集] 頁面中,選取 [建立資料集] 選項,然後選取 [下一步]。
在 [選擇與資料來源的連線] 頁面上,選取 [新增]。
在 [資料來源屬性] 對話方塊上,設定 [一般] 索引標籤上的下列屬性:
將資料來源的 [名稱] 屬性設定為 "Product_Sales"。
針對 [選取連線類型] 屬性,確認已選取 "Microsoft SQL Server"。
對於 [連接字串] 屬性,輸入下列值,其中
<servername>
是 SQL Server 執行個體的名稱:Data Source=<servername>
由於您將使用包含資料的查詢,而不是從資料庫擷取資料,因此連接字串不會包含資料庫名稱。 如需詳細資訊,請參閱教學課程的必要條件 (報表產生器)。
切換至 [認證] 索引標籤,然後選取您偏好的資料來源存取方法。 視需要輸入認證:
在 [一般] 索引標籤上,選取 [測試連接],以確認您能夠連線到資料來源。
您應該會看見快顯訊息:「成功建立連線」。選取 [確定] 以清除快顯訊息。
若要完成資料來源設定,請選取 [確定]。
若要在精靈中繼續,請選取 [下一步]。
建立查詢
在報表中,您可以使用擁有預先定義查詢的共用資料集,或是建立只在此特定報表中使用的內嵌資料集。 在本教學課程中,建立內嵌資料集。
注意
在本教學課程範例中,查詢會包含資料值,因此不需要外部資料來源。 此方法會使查詢相當冗長,但非常有助於學習。 在標準商務環境中,查詢不包含資料值。
依照下列步驟建立查詢:
[設計查詢] 頁面上會開啟關聯式查詢設計工具。 在本教學課程中,您可使用文字型查詢設計工具:
選取 [當成文字編輯]。 以文字為基礎的查詢設計工具會顯示查詢窗格和結果窗格。
在頂部欄位中,貼上下列 Transact-SQL 查詢:
SELECT CAST('2009-01-05' AS date) as SalesDate, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(9924.60 AS money) AS Sales, 68 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Accessories' as Subcategory, 'Tripod' as Product, CAST(1350.00 AS money) AS Sales, 18 as Quantity UNION SELECT CAST('2009-01-11' AS date) as SalesDate, 'Accessories' as Subcategory, 'Lens Adapter' as Product, CAST(1147.50 AS money) AS Sales, 17 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Accessories' as Subcategory, 'Mini Battery Charger' as Product, CAST(1056.00 AS money) AS Sales, 44 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Accessories' as Subcategory, 'Telephoto Conversion Lens' as Product, CAST(1380.00 AS money) AS Sales, 18 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate,'Accessories' as Subcategory, 'USB Cable' as Product, CAST(780.00 AS money) AS Sales, 26 as Quantity UNION SELECT CAST('2009-01-08' AS date) as SalesDate, 'Accessories' as Subcategory, 'Budget Movie-Maker' as Product, CAST(3798.00 AS money) AS Sales, 9 as Quantity UNION SELECT CAST('2009-01-09' AS date) as SalesDate, 'Camcorders' as Subcategory, 'Business Videographer' as Product, CAST(10400.00 AS money) AS Sales, 13 as Quantity UNION SELECT CAST('2009-01-10' AS date) as SalesDate, 'Camcorders' as Subcategory, 'Social Videographer' as Product, CAST(3000.00 AS money) AS Sales, 60 as Quantity UNION SELECT CAST('2009-01-11' AS date) as SalesDate, 'Digital' as Subcategory, 'Advanced Digital' as Product, CAST(7234.50 AS money) AS Sales, 39 as Quantity UNION SELECT CAST('2009-01-07' AS date) as SalesDate, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(10836.00 AS money) AS Sales, 84 as Quantity UNION SELECT CAST('2009-01-08' AS date) as SalesDate, 'Digital' as Subcategory, 'Consumer Digital' as Product, CAST(2550.00 AS money) AS Sales, 17 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(8357.80 AS money) AS Sales, 44 as Quantity UNION SELECT CAST('2009-01-09' AS date) as SalesDate, 'Digital SLR' as Subcategory, 'SLR Camera 35mm' as Product, CAST(18530.00 AS money) AS Sales, 34 as Quantity UNION SELECT CAST('2009-01-07' AS date) as SalesDate, 'Digital SLR' as Subcategory, 'SLR Camera' as Product, CAST(26576.00 AS money) AS Sales, 88 as Quantity
在查詢設計工具的工具列上,選取 [執行] (!):
查詢隨即執行,並顯示 SalesDate、Subcategory、Product、Sales 和 Quantity 欄位的結果集。
在結果集中,欄標題是依據查詢中的名稱而定。 在資料集中,欄標題會變成欄位名稱,並且儲存在報表中。 完成精靈後,您可以使用 [報表資料] 窗格檢視資料集欄位的集合。
若要在精靈中繼續,請選取 [下一步]。
將資料組織為群組
選取資料欄位來行程群組時,您會設計包含資料列和資料行的資料表,以顯示詳細資料和彙總資料。 在下列程序中,前兩個步驟會指定要顯示在資料表中的資料值,而最後兩個步驟可組織值。
在 [排列欄位] 頁面上,將資料表資料組織成群組:
從 [可用欄位] 方塊中,依次將 [產品] 欄位和 [數量] 欄位拖移至 [值] 方塊。 將 [數量] 欄位置於 [產品] 欄位之後。
Sum 函式會自動彙總 [數量] 資料,即為數值欄位的預設彙總。 值為 [Sum(Quantity)]。
提示
您可以選取 [Sum(Quantity)] 彙總旁的下拉式箭號,以檢視其他彙總函式。 在此練習中,請將彙總函式設定為 Sum。
將 [銷售] 欄位拖移至 [值] 方塊,並將其放置在 [Sum(Quantity)] 彙總之後。
Sum 函式會彙總 Sales 資料。 值為 [Sum(Sales)]。
依次將 "SalesDate" 欄位和 [子類別] 欄位拖移至 [資料列群組] 方塊。 將 [子類別] 欄位置於 "SalesDate" 欄位之後。
若要在精靈中繼續,請選取 [下一步]。
新增小計和總計數據列合計列
建立群組之後,您可以加入並格式化要顯示欄位彙總值的資料列。 您可以選擇要顯示所有資料,或是允許使用者以互動方式展開和摺疊分組資料。
請依照下列步驟,新增資料表資料的小計和總計:
在 [選擇版面配置] 頁面的 [選項] 底下,設定下列選項:
選取 [顯示小計和總計] 選項。
選取 [區塊式,小計位於下方] 選項。
清除 [展開/摺疊群組] 選項。
在本教學課程中,您建立的報表不會使用向下鑽研功能,此功能可讓使用者展開父群組階層,並顯示子群組資料列和詳細資料列。
在 [預覽] 窗格中,選取 [下一步] 以檢查資料表。 當您執行報表時,您應該會看到五個示範資料表版面配置的資料列:
第一個資料列會針對資料表重複一次,以顯示資料行標題。
第二個資料列會針對銷售訂單中的每一行項目重複一次,以顯示產品名稱、訂單數量和行總計。
第三個資料列會針對每個銷售訂單類別重複一次,以顯示每個類別的小計。
第四個資料列則會針對每個訂貨日期重複一次,以顯示每天的小計。
第五個資料列會針對資料表重複一次,以顯示總計。
選取 [完成]。
Report Builder 會將資料表新增至設計介面。 這個資料表具有五個資料行和五個資料列。 [資料列群組] 窗格會顯示三個資料列群組:SalesDate、Subcategory 和 Details。 詳細資料是資料集查詢擷取的所有資料。
精靈程式已完成,您現在有包含範例資料的資料表報表。 在下列各節中,您可設定特定資料表資料的格式,以使用適合讀者的格式顯示值。
格式資料表資料
Report Builder 使用預設格式在報表中顯示資料表資料值,例如數值、日期、時間等等。 您可以使用 [首頁] 索引標籤上的格式化功能,來變更資料表資料的顯示方式。
將貨幣值格式化為當地貨幣而非一般數位會很有幫助。 另一個案例是資料表資料,其會摘要說明在短時間內的值變更。 相較於顯示月份、日和年,僅以分鐘或小時顯示資料可能更有用。
下列各節示範如何使用格式化功能來變更報表中資料表日期的顯示方式。 格式化文字方塊和預留位置文字會在 [設計檢視] 中顯示為範例值。
顯示貨幣值
根據預設,[銷售] 欄位的摘要資料在資料表報表中會顯示為一般數字。 透過套用貨幣格式,該值可以恰當的方式表示。
請依照下列步驟,將資料表資料格式化為貨幣:
在 Report Builder 中,選取資料表報表中的 [銷售] 資料行標頭:
在 [首頁] 索引標籤的 [數字] 群組中,選取 [預留位置樣式] ([123]),然後選取 [範例值]:
在資料表報表的 [銷售] 資料行中,多重選取包含
[Sum(Sales)]
值的四個資料格。在 [首頁] 索引標籤的 [數字] 群組中,選取 [貨幣] ($)。 選取的資料格會變更為使用貨幣格式來顯示資料值。
如果您的地區設定為 [英文 (美國)],則預設範例文字會以美元顯示值
[$12,345.00]
。如果您沒有看到範例貨幣值,則請檢查資料格的預留位置樣式。 在 [首頁] 索引標籤的 [數字] 群組中,確認 [預留位置樣式] ([123]) 選項已設定為 [範例值]。
在 [首頁] 索引標籤中,選取 [執行] 預覽報表。
確認 [銷售] 資料行中的摘要值顯示為貨幣。 報表結果的範例如下:
顯示日期 (月、日、年)
根據預設,SalesDate 欄位會顯示日期 (月、日、年) 和時間 (小時、分鐘、秒) 資料。 您可以變更這些值的格式,以僅顯示日期。
將值格式化為只顯示日期:
在 [執行] 索引標籤上,選取 [設計] 返回設計檢視。
在資料表報表中,選取包含值的數據
[SalesDate]
的資料格。在 [首頁] 索引標籤的 [數字] 群組中,展開 [格式] 下拉功能表,然後選取 [日期]:
資料格會顯示範例日期
[1/31/2000]
。如果您沒有看到範例日期值,則請檢查預留位置樣式。 在 [首頁] 索引標籤的 [數字] 群組中,確認 [預留位置樣式] ([123]) 選項已設定為 [範例值]。
在 [首頁] 索引標籤中,選取 [執行] 預覽報表。
確認 SalesDate 資料行中的值只會顯示為日期 (月、日、年)。 報表結果的範例如下:
使用自訂日期格式
您也可以為資料表中的特定欄位指定自訂格式:
在 [執行] 索引標籤上,選取 [設計] 返回設計檢視。
在您的資料表報表中,移至先前包含
[SalesDate]
值的資料格。以滑鼠右鍵按一下資料格,然後選取 [文字輸入框屬性]:
在 [文字輸入框屬性] 對話方塊中,設定資料格格式化:
在 [索引標籤] 窗格中,選取 [數字]。
在 [類別] 清單中,選取 [日期]。
在 [類型] 清單中,選取 [2000 年 1 月 31 日]。
[範例]區段會顯示格式化設定的預覽。
選取 [確定],以套用您的自訂格式設定。
資料表資料格會更新,以顯示範例日期
[January 31, 2000]
。在 [首頁] 索引標籤中,選取 [執行] 預覽報表。
確認 SalesDate 資料行中的值會顯示月份名稱,而不是月份號碼。 報表結果的範例如下:
格式化資料表
除了將特定格式套用至資料表中的資料之外,您也可以設定整個屬性,例如資料行寬度、資料列高度和資料表標題。 下列各節會示範這些程序。
變更欄寬
根據預設,資料表中的每個資料格都會包含一個文字方塊。 頁面轉譯時,文字輸入框會垂直展開以容納文字。 在轉譯的報表中,每一個資料列都會依照資料列中最高的轉譯文字方塊高度展開。 設計介面上資料列的高度對於轉譯報表中資料列的高度並無影響。
若要減少每個資料列佔用的垂直空間數量,您可以展開資料行寬度以容納一行上資料行中預期的文字輸入框內容。
請依照下列步驟,變更資料表資料行的寬度:
在 [執行] 索引標籤上,選取 [設計] 返回設計檢視。
在設計介面中,選取資料表以顯示資料列和資料行控制代碼。 控制代碼會沿資料表的邊緣顯示為灰色長條。
按住並拖移控制代碼,以增加資料表寬度。
提示
您可以展開設計介面的寬度,以增加在資料表上工作的可見區域。 當資料表比設計介面更寬時,您需要使用捲軸來檢視完整的資料表。
指向 [子類別] 與 [產品] 資料行之間的線條,以顯示雙箭頭資料指標。
選取並拖移線條,以增加 [產品] 資料行的寬度。 增加寬度,讓資料行中的產品名稱可以顯示在轉譯報表中的單一行上。
在 [首頁] 索引標籤中,選取 [執行] 預覽報表。
確認 [產品] 資料行中的值會顯示在單一行上。 報表結果的範例如下:
自訂報表標題
報表標題會出現在報表的頂端。 您可以將報表標題放置在報表頁首。 如果報表不使用報表主體頁首,則可以將標題放置在報表主體頂端的文字輸入框中。 在本教學課程中,使用自動放置在報表主體頂端的文字輸入框。
有許多方式可以自訂報表標題,例如使用不同的字型樣式、文字大小和色彩。 標題的部分,甚至是個別字元都可以使用不同的格式設定。 如需詳細資訊,請參閱格式化編頁報表文字輸入框中的文字 (報表產生器)。
請依照下列步驟,自訂您的報表標題:
在 [執行] 索引標籤上,選取 [設計] 返回設計檢視。
在設計介面上,選取 [按一下以加入標題] 文字輸入框。
在 [按一下以加入標題] 文字輸入框中,輸入文字 "Product Sales",然後選取文字輸入框外部。
以滑鼠右鍵按一下文字輸入框,然後選取 [文字輸入框屬性]。
在 [文字輸入框屬性] 對話方塊中,設定文字格式設定:
在 [索引標籤] 窗格中,選取 [字體]。
在 [字體] 清單中,選取 "Arial"。
在 [大小] 清單中,選取 [18pt]。
在 [色彩] 清單中,選取 [藍色] 。
針對 [樣式],選取 [粗體]。
[範例]區段會顯示格式化設定的預覽。
選取 [確定] 來套用標題格式設定。
在 [首頁] 索引標籤中,選取 [執行] 預覽報表。
確認資料表會顯示更新的標題:
儲存報表
將報表儲存至報表伺服器或您的電腦。 如果沒有將報表儲存到報表伺服器,則無法使用數個報表服務功能,例如子報表。
請依照下列步驟,將報表儲存在報表伺服器:
選取 [檔案]>[另存新檔]。
在 [另存新檔報表] 對話方塊中,選取右窗格中的 [最近使用的網站和伺服器]。
選取或輸入您有權儲存報表之報表伺服器的名稱。
「正在連接到報表伺服器」訊息隨即顯示。 完成連線時,即會開啟預設報表資料夾。 報表伺服器管理員會指定預設資料夾位置。
針對報表 [名稱],以 "Product_Sales" 取代預設值 [未命名]。
選取儲存。
報表就會儲存至報表伺服器。 視窗底部的狀態列中會顯示您連接的報表伺服器的名稱。
將報表儲存到您的電腦中
您還可以將報表儲存到您的電腦中:
選取 [檔案]>[另存新檔]。
選取 [桌面]、[我的文件] 或 [我的電腦],然後瀏覽到您要儲存報表的資料夾。
針對報表 [名稱],以 "Product_Sales" 取代預設值 [未命名]。
選取儲存。
匯出報表
報表可匯出為不同的格式,例如 Microsoft Excel 和逗點分隔值 (CSV) 檔案。 如需詳細資訊,請參閱匯出編頁報表 (報表產生器)。
在本教學課程中,您會將報表匯出到 Excel,並且設定報表上的屬性,為活頁簿索引標籤提供自訂名稱。
設定 Excel 活頁簿索引標籤名稱
請依照下列步驟,指定 Excel 活頁簿索引標籤名稱:
選取 [設計] 返回設計檢視。
在 [檢視] 索引標籤上,選取 [屬性] 來開啟 [屬性] 窗格。
選取設計介面上的任何位置,但應在資料表報表外部。
[屬性] 窗格中所列的項目,會對應到您在設計介面上選取的位置。 針對此程序,您要選取報表區域外部。
在 [屬性] 窗格中,展開 [其他] 群組,然後尋找 "InitialPageName" 屬性。
提示
如果在 [屬性] 窗格中看不到屬性,請嘗試選取窗格頂端的 [字母順序] 按鈕,依字母順序排列所有屬性。
針對 "InitialPageName" 屬性,輸入活頁簿索引標籤名稱 Product Sales Excel。
將報表匯出至 Excel
使用下列步驟,將您的報表匯出至 Excel:
在 [首頁] 索引標籤中,選取 [執行] 預覽報表。
在工具列上,選取 [匯出]>"Excel]"。
在 [另存新檔] 對話方塊中,瀏覽至您要儲存檔案的位置。
針對 [檔案名稱],輸入 "Product_Sales_Excel"。
驗證檔案類型是否為 Excel (*.xlsx)。
選取儲存。
在 Excel 中檢視報表
現在,您可以在 Excel 中檢視資料表報表:
開啟您儲存活頁簿的資料夾並按兩下 "Product_Sales_Excel.xlsx"。
確認活頁簿索引標籤的名稱是 "Product Sales Excel"。