本教學課程會教導您如何根據範例銷售數據建立基本矩陣報表。 矩陣具有巢狀列和行群組,以及相鄰的列群組。 您也將瞭解如何格式化數據行和旋轉文字。 下圖顯示了一份與您將建立的報表類似的報表。
您將在本教學課程中建立的增強版報表,以範例 SQL Server 2014 報表產生器報表的形式提供。 如需下載此範例報表和其他報表的詳細資訊,請參閱 報表產生器範例報表。
學習內容
在本教學課程中,您將瞭解如何:
其他選擇性步驟
完成本教學課程的估計時間:20 分鐘。
需求
如需需求的詳細資訊,請參閱教學課程 的必要條件(報表產生器)。
1.從新增數據表或矩陣精靈建立矩陣報表和數據集
從報表產生器的 [ 用戶入門 ] 對話框中,選擇共用數據源、建立內嵌數據集,然後在矩陣中顯示數據。
備註
在本教學課程中,查詢已經包含數據值,因此不需要外部數據源。 這使查詢變得相當長。 在商務環境中,查詢不會包含數據。 這僅供學習之用。
若要建立新的矩陣
按兩下 [開始],指向 [ 程式],指向 [Microsoft SQL Server 2012 報表產生器],然後按兩下 [ 報表產生器]。
備註
應該會出現 [快速入門] 對話框。 如果沒有,請從 [報表產生器] 按鈕按兩下 [ 新增]。
在左窗格中,確認已選取 [新增報表 ]。
在右窗格中,按兩下 [ 資料表或矩陣精靈]。
在 [ 選擇數據集] 頁面上,按兩下 [ 建立數據集]。
按 [下一步]。
在 [ 選擇數據源的連接 ] 頁面上,選取現有的數據源或流覽至報表伺服器,然後選取數據源。 如果沒有可用的數據源,或您沒有報表伺服器的存取權,您可以改用內嵌數據源。 如需建立內嵌資料來源的詳細資訊,請參閱 教學課程:建立基本數據表報表(報表產生器) 。
按 [下一步]。
在 設計查詢 頁面上,點擊 編輯為文字。
複製下列查詢並貼入查詢窗格中:
SELECT CAST('2009-01-05' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory,'Carrying Case' as Product, CAST(16996.60 AS money) AS Sales, 68 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(13747.25 AS money) AS Sales, 55 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Carrying Case' as Product, CAST(9248.15 AS money) As Sales, 37 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1350.00 AS money) AS Sales, 18 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1800.00 AS money) AS Sales, 24 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1125.00 AS money) AS Sales, 15 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Central' as Territory, '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, 'North' as Territory, 'Accessories' as Subcategory, 'Lens Adapter' as Product, CAST(742.50 AS money) AS Sales, 11 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(1417.50 AS money) AS Sales, 21 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(13497.30 AS money) AS Sales, 54 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(11997.60 AS money) AS Sales, 48 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(10247.95 AS money) As Sales, 41 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory, 'Tripod' as Product, CAST(1200.00 AS money) AS Sales, 16 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(2025.00 AS money) AS Sales, 27 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1425.00 AS money) AS Sales, 19 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(887.50 AS money) AS Sales, 13 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory, 'Lens Adapter' as Product, CAST(607.50 AS money) AS Sales, 9 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(1215.00 AS money) AS Sales, 18 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Central' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(10191.00 AS money) AS Sales, 79 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'North' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(8772.00 AS money) AS Sales, 68 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'South' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(10578.00 AS money) AS Sales, 82 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Central' as Territory,'Digital' as Subcategory, 'Slim Digital' as Product, CAST(7218.10 AS money) AS Sales, 38 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'North' as Territory,'Digital' as Subcategory, 'Slim Digital' as Product, CAST(8357.80 AS money) AS Sales, 44 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'South' as Territory,'Digital' as Subcategory,'Slim Digital' as Product, CAST(9307.55 AS money) AS Sales, 49 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Central' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(3870.00 AS money) AS Sales, 30 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'North' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(5805.00 AS money) AS Sales, 45 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'South' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(8643.00 AS money) AS Sales, 67 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Central' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(9877.40 AS money) AS Sales, 52 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'North' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(12536.70 AS money) AS Sales, 66 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'South' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(6648.25 AS money) AS Sales, 35 as Quantity按 [下一步]。
2.從 [新增數據表或矩陣精靈] 組織數據並選擇版面配置和樣式
使用精靈提供要顯示數據的起始設計。 精靈中的預覽窗格可協助您在完成矩陣設計之前,將群組數據的結果可視化。
若要將數據組織成群組,並選擇版面配置和樣式
在 排列欄位 頁面上,將 區域 從 可用欄位 拖曳至 列群組。
將 SalesDate 拖曳至 列群組 ,並將它放在地區下方。
列 群組 中列出欄位的順序會定義群組階層。 步驟 1 和 2 會先依地區組織欄位的值,再依銷售日期。
將子類別拖曳至欄位群組。
將 [產品] 拖曳至 [ 數據行] 群組, 然後放在 [子類別] 下方。
數據行 群組 中列示欄位的順序會定義群組階層。
步驟 3 和 4 會先依子類別來組織字段的值,然後再依產品排列。
將 Sales 拖曳至 值。
Sales 會使用 Sum 函數摘要,這是摘要數值欄位的預設函式。
將數量拖移至 值。
數量是透過 Sum 功能進行匯總。
步驟 5 和 6 指定要顯示在矩陣數據格中的數據。
按 [下一步]。
在 [選擇版面配置] 頁面的 [ 選項] 底下,確認已選取 [顯示小計和總計 ]。
確認已選取 [已封鎖,以下小計]。
確認已選取 [ 展開/折迭群組 ] 選項。
按 [下一步]。
在 [選擇樣式] 頁面的 [樣式] 窗格,選取 石板。
按一下完成。
矩陣被新增至設計介面。 [數據列群組] 窗格會顯示兩個數據列群組:Territory 和 SalesDate。 [欄群組] 窗格會顯示兩個欄群組:子類別和產品。 詳細數據是數據集查詢所擷取的所有數據。
按兩下 [執行] 預覽報表。
針對在特定日期銷售的每個產品,矩陣會顯示產品所屬的子類別和銷售領域。
3. 格式化數據
根據預設,Sales 欄位的摘要數據會顯示一般數位,而 SalesDate 欄位會顯示日期和時間資訊。 將 Sales 欄位的數字格式化為貨幣,並將 SalesDate 欄位只顯示日期。 切換 佔位元樣式 ,將格式化文本框和佔位元文字顯示為範例值。
若要格式化欄位
按兩下 [設計 ] 切換至設計檢視。
按 Ctrl 鍵,然後選取包含
[Sum(Sales)]的九個單元格。在 [ 首頁] 索引標籤的 [ 數位 ] 群組中,按兩下 [ 貨幣]。 單元格變更以顯示格式化貨幣。
如果您的地區設定是英文(美國),默認範例文字為 [$12,345.00]。 如果您沒有看到範例貨幣值,請在 數字 群組中按一下 佔位元樣式,然後按一下 範例值。
點擊包含
[SalesDate]的儲存格。在 [ 數位 ] 群組的下拉式清單中,選取 [ 日期]。
單元格會顯示範例日期 [1/31/2000]。 如果您沒有看到範例日期,請按兩下 [數位] 群組中的 [佔位元樣式],然後按兩下 [範例值]。
按兩下 [執行] 以預覽報表。
日期值只會顯示日期,而銷售值會顯示為貨幣。
4.新增相鄰欄位組
您可以在父子關聯中嵌套列和行群組,或在兄弟關聯中並列。
新增與 Subcategory 數據行群組相鄰的數據行群組、複製儲存格以填入新的資料行群組,然後使用表達式來建立數據行群組標頭的值。
加入相鄰的欄位群組
按兩下 [設計 ] 傳回設計檢視。
右鍵點一下包含
[Subcategory]的儲存格,指向 [ 新增群組],然後按一下 [ 相鄰右方]。[Tablix 群組] 對話框隨即開啟。
在 分組依據 清單中,選取 SalesDate,然後按一下 確定。
新的數據行群組會新增至 Subcategory 數據行群組的左邊。
以滑鼠右鍵點擊新的欄群組中包含
[SalesDate],的儲存格,然後點選表達式。將下列表達式複製到表達式方塊。
=WeekdayName(DatePart("w",Fields!SalesDate.Value))此表達式會從銷售日期擷取工作日名稱。 如需詳細資訊,請參閱表達式(報表產生器及 SSRS)。
以滑鼠右鍵點擊包含總計的 Subcategory 資料行群組中的儲存格,然後點擊 複製。
在包含您在步驟 5 中建立之表達式的儲存格正下方的儲存格上以滑鼠右鍵按一下,然後按 貼上。
按 Ctrl 鍵。
在 [子類別] 群組中,點擊 [Sales] 資料行標頭和其下方的三個單元格,右鍵點擊,然後選擇 [複製]。
將四個儲存格貼到新數據行群組中的四個空白儲存格中。
按兩下 [執行] 預覽報表。
報表包含名為星期一和星期二的欄位。 數據集只包含這兩天的數據。
備註
如果報表中包含其他天數的數據,那麼報表也會加入這些天數的欄位。 每個欄都有欄位標題 Sales,以及按地區劃分的銷售額總計。
5.變更欄寬
在執行時,包含矩陣的報表通常會同時在水平方向和垂直方向展開。 如果您打算將報表匯出為用於列印報表的 Microsoft Word 或 Adobe PDF 等格式,控制水平展開就特別重要。 如果報表水平跨多個頁面展開,列印出來的報表將很難理解。 若要將水平展開最小化,您可以將數據行大小調整為僅顯示數據而不換行所需的寬度。 您也可以重新命名數據行,使其標題符合顯示資料所需的寬度。
重新命名和調整欄位大小
按兩下 [設計 ] 傳回設計檢視。
選取最左邊 [數量] 資料行中的文字,然後輸入 QTY。
欄位標題現在是「數量」(QTY)。
針對名為 Quantity 的其他欄重複步驟 2。 其中有兩個。
按一下矩陣,讓列和行的控制項出現在矩陣的上方和旁邊。
沿著表格頂端和側邊的灰色橫條是數據行和數據列控點。
若要調整最左邊 QTY 數據行的大小,請指向數據行控點之間的線條,讓游標變更為雙箭號。 將欄拖曳到左邊,直到其寬度為 1/2 英吋為止。
1/2 英吋的數據行寬度足以顯示數量。
針對名為 QTY 的其他數據行重複步驟 5。
按兩下 [執行] 以預覽報表。
報表中包含數量的數據行現在名為 QTY,且數據行較窄。
6. 合併矩陣儲存格
邊角區域位於矩陣的左上角。 根據矩陣中的數據列和數據行群組數目,邊角區域中的儲存格數目會有所不同。 本教學課程中建置的矩陣在其角落區域中有四個單元格。 單元格排列在兩行兩列中,以反映行和列群組階層的深度。 此報表中不會使用這四個儲存格,您將將它們合併成一個。
合併矩陣儲存格
按兩下 [設計 ] 傳回設計檢視。
按一下矩陣,使欄和列的控點出現在矩陣的上方和旁邊。
按 Ctrl 鍵,然後選取四個角落單元格。
以滑鼠右鍵按下儲存格,然後按兩下 [ 合併儲存格]。
以滑鼠右鍵按一下邊角單元格,然後點選文字框屬性。
按兩下 [填滿] 索引標籤。
按兩下 [填滿色彩] 的 [fx] 按鈕。
在表達式方塊中複製並貼上下列表達式。
#96a4b2這是 Slate 樣式中使用的灰色藍色 RGB 十六進位值。
按一下 [確定]。
按兩下 [執行] 以預覽報表。
左上角矩陣是單一儲存格,且色彩與數據列群組和數據行群組儲存格相同。
7.新增報表標頭和報表標題
報表標題會出現在報表頂端。 您可以將報表標題放在報表標頭中,或者如果報表不使用報表標題,則放在報表主體頂端的文本框中。 在本教學課程中,您將移除報表頂端的文字框,並將標題新增至標頭。
新增報表標頭和報表標題
按兩下 [設計 ] 傳回設計檢視。
按兩下報表本文頂端的文字框,其中包含 [按兩下以新增標題],然後按 [刪除] 鍵。
在功能區的 [ 插入] 索引標籤上,按兩下 [ 標頭 ],然後按兩下 [ 新增標頭]。
標頭會新增至報表主體的頂端。
在 [ 插入] 索引標籤上,按兩下 [文字框],然後在報表標頭內拖曳文本框。 使文本框長約 6 英吋,高 3/4 英吋,並將它放在報表標頭的左側。
在文本框中,輸入 按地區、子類別和日期的銷售情況。
選取您輸入的文字,以滑鼠右鍵按兩下,然後按下 [ 文字屬性]。
備註
若要同時格式化字元,它們必須是連續的。
在 [ 文字屬性] 對話框中,按兩下 [ 字型]。
在 [ 字型 ] 列表中,選取 [ 時代新羅馬] ;在 [大小 ] 中選取 [24 pt],在 [ 色彩 ] 中選取 [ 馬龍],然後在 [ 樣式 ] 中選取 [ 斜體]。
按一下 [確定]。
按兩下 [執行] 預覽報表。
報表會在報表標頭中包含報表標題。
8.儲存報表
您可以將報表儲存到報表伺服器、SharePoint 文件庫或您的電腦。
在本教學課程中,將報表儲存至報表伺服器。 如果您沒有報表伺服器的存取權,請將報表儲存至您的電腦。
在報表伺服器上儲存報表
從 [報表產生器] 按鈕中,按兩下 [ 另存新檔]。
按兩下 [最近使用的網站和伺服器]。
選取或輸入您有權儲存報表的報表伺服器名稱。
[連接到報表伺服器] 訊息隨即出現。 連線完成時,您會看到報表伺服器系統管理員指定為預設報表位置之報表資料夾的內容。
在 [名稱] 中,將默認名稱取代為 SalesByTerritorySubcategory。
點選 [儲存]。
報表會儲存至報表伺服器。 您所連線的報表伺服器名稱會出現在視窗底部的狀態列中。
將報表儲存在您的電腦上
從 [報表產生器] 按鈕中,按兩下 [ 另存新檔]。
按兩下 [桌面]、[ 我的檔案] 或 [ 我的計算機],然後流覽至您要儲存報表的資料夾。
在 [名稱] 中,將默認名稱取代為 SalesByTerritorySubcategory。
點選 [儲存]。
9. (選擇性) 旋轉文字框 270 度
報表內含矩陣,執行時可水平及垂直展開。 您可以垂直旋轉文字框或 270 度,以節省水平空間。 轉譯的報表會變窄,如果導出為 Microsoft Word 等格式,則更可能適合列印的頁面。
文字框也可以將文字顯示為水平、垂直(由上至下)。 如需詳細資訊,請參閱文本框(報表產生器及 SSRS)。
旋轉文字框 270 度
按兩下 [設計 ] 傳回設計檢視。
按一下包含
[Territory].的儲存格在 [屬性] 窗格中,找出 WritingMode 屬性,並在其下拉式清單中選取 [Rotate270]。
如果 [屬性] 窗格未開啟,請按兩下功能區的 [ 檢視] 索引標籤,然後選取 [ 屬性]。
確認 CanGrow 屬性已設定為
True。將 Territory 資料行的大小調整為 1/2 英吋寬,並刪除數據行標題。
按兩下 [執行] 以預覽報表。
區域名稱會垂直寫入,由下至上。 地區列群組的高度會根據地區名稱的長度而有所不同。
後續步驟
這總結了如何建立矩陣報表的教學課程。 如需矩陣的詳細資訊,請參閱數據表、矩陣和清單(報表產生器及 SSRS)、矩陣(報表產生器及 SSRS)、Tablix 數據區區域(報表產生器及 SSRS),以及 Tablix 數據區單元格、數據列和數據行(報表產生器)和 SSRS