“Ah ha,發現你了!”你的經理突然從桌子后面的假花旁冒出來,發出勝利的叫聲。你沮喪地轉過頭看着經理。
“我已經創建了一個基本報表,並抓取了一些數據,我正打算-”你在他打斷你之前快速的解釋着。
“趕緊做完就好,大BOSS需要這個報表,越快越好”留下這些話后,你的經理揚長而去。
你心情沉重的坐下,打開SQLServerCentral.com,又到了讀本系列文章的時候了。本篇文章闡述如何分組信息,調整動態列和行分組以及在Reporting Service中使用Tablix。
Table + Matrix + List = Tablix
Tablix是SSRS展示數據的工具。SQL Server Reporting Services 2008之后才有的報表項。由三個之前具有相似性的報表項組成:表、矩陣、列表。Tablix的視圖如圖4-1所示。
圖4-1.Tablix視圖
你並不能在Business Intelligence Development Studio (BIDS)的工具箱中找到Tablix工具。取而代之的是,你可以在圖二分別看到表、矩陣和列表項,無論你將這三個項中的哪個項拖入報表,報表服務其實使用的都是Tablix。
圖4-2.工具箱中展現Tablix模板
注意:如果你在BIDS中看不到工具箱,點擊視圖->工具箱選項或者按快捷鍵Ctrl + Alt + X.在工具箱中,所有的報表項都放在“報表項”頭下。
下面我們來看第一個tablix模版:表
表
表是一個可以展示分組和聚合后數據的簡單對象。如果數據包含的列是固定的,則可以使用表項。讓我們從將”表”拽到報表上開始,在上一章中我們已經設置了數據集,這里直接為表使用這個數據集。每一個表只能從一個數據集中抓取數據。你可以從屬性窗格中->DataSetName屬性的下拉列表中選擇數據集。屬性窗格如圖4-3。
圖4-3.屬性窗格和DataSetName屬性
現在我們可以使用數據集中的字段來涉及表了,我們可以通過如下幾種方式來在表中插入字段:
- 從報表數據窗格中拽入字段
- 從每一個格子中右上角的下拉列表中選擇字段,如圖4-4所示
- 在每個格子的屬性窗格里進行選擇
圖4-4.表字段的選擇
使用那種方式設置字段並不重要,一個簡單表布局如圖4-5所示。
圖4-5.簡單的表布局
分組
Tablix可以通過每一個“詳細信息”分組來顯示表。“詳細信息”組為我們提供了一個了解分組原理的基本概念。每一次報表服務看到一個唯一行,它都會創建一個詳細信息組。與這個原理相同,每一個所創建的分組都對唯一值再次創建一個詳細信息組,下面我們來通過實例闡述這個概念。
在分組窗格中。在SSRS2008之前的版本中,你可以在表和矩陣的屬性窗格中看到這個窗格,而在之后的版本中,你直接在BIDS的底部就能看到這個窗格,如圖4-6所示。
圖4-6.行和列的分組窗口
因為我們在表模版上工作,讓我們來創建一個行組。點擊行組窗格下的詳細信息右邊的下拉箭頭,你會看到多個選項,包括”添加組”。選擇添加組->父組選項,然后選擇分組的條件列。如果需要添加組頭和組尾,選擇對應的Checkbox.完成的截圖如圖4-7所示。
圖4-7.完成的Tablix組窗口
當你點擊完成后,你可以在表設計界面中看到如圖4-8所示。
圖4-8.分組后的表設計
你可以在組頭或組尾加入聚合函數或敲入一個標題來描述這一列。下面通過一個表達式來創建一個累加聚合。右鍵表格右下角處於行和列最后的那個單元格,右鍵點擊文本單元格屬性,在值那一欄填入:=SUM(Fields!TotalDue.Value),如圖4-9所示。
圖4-9 文本框屬性
在開始運行報表之前,讓我們來看一下Tablix的矩陣模版。在討論矩陣之前我們首先討論分組是因為這是理解表和矩陣之前區別的關鍵點。接下來我們來看矩陣。
矩陣(Matrix)
和表類似,矩陣也有對行或列進行聚合分組的功能。分組后的結果在x軸和軸上進行增長。創建列組和行組的方法很類似,唯一的區別是對屬性的設置一個在行組窗格,一個是在列組窗格。下面例子是使用矩陣的報表按照不同月和銷售地區對銷售報表進行匯總的例子。如圖4-10所示。
圖4-10. 矩陣的布局
列表(List)
列表在討論tablix時經常會被遺忘因為它實在是太簡單了。數據集中的每一行都會在列表中生成一行和一列。如果你需要在報表中創建一個不受限於當前格式元素,你可以使用列表。你可以在列表中鍵入任何文本框來滿足最終用戶所希望的布局。
格式(Formatting)
報表的最終用戶通常都希望數據以既定的格式顯示。因為格式所應用的最小單元是文本框。所以你可以通過對表格,矩陣和列表來設置格式從而應用到tablix。在對我們已經創建好的基於表的報表中,我們對列排序規則和字體屬性做一些改變。
列排序
幾乎每一張報表都需要應用列排序從而將數據以既定的排序展示。通過點擊tablix的任何一出,在出現灰色框中點擊右鍵,選擇Tablix屬性,如圖4-11所示。
圖4-11.選擇Tablix屬性窗口
在屬性窗口中,在左邊的選項中選擇排序。選擇希望按照規則排序的列並選擇排序順序為A-Z,也就是升序。完成的窗口如圖4-12所示。記住分組本身也帶有排序,如果你運行報表后發現排序有問題,檢查以確保其他類型的排序不會覆蓋掉當前的排序。
圖4-12.完成后的排序窗格
字體屬性
下一步,讓我們來看字體屬性。這個設置可以讓字體更加好看。選擇所有列的頭那行,在屬性窗格中,選擇字體屬性->FontWeight屬性->粗體選項,如圖4-13所示。
圖4-13.在屬性窗格中的字體屬性選擇
在所有的這些准備,分組和格式設置完成后,我們迎來了完成的報表。點擊預覽標簽,可以看到如圖4-14所示。
圖4-14.最終的報表視圖
接下來:飯后甜點
現在,我們已經完成了報表服務中報表的一些核心概念的學習。我們在表和矩陣中展示數據,並對其進行分組,排序和設置格式。這可以讓我們的報表滿足大多數用戶的需求。因為我們總是想給用戶最棒的產品,接下來我們學習如何在報表中添加圖表和地圖使我們給大BOSS的報表看上去充滿活力。我將在本系列文章的下一篇以圖表展示未知中進行闡述。