了解群組 (報表產生器 3.0 和 SSRS)
在報表產生器中,群組是一組來自繫結至資料區之報表資料集的具名資料。基本上,一個群組會組織一個報表資料集的檢視。資料區域中的所有群組會指定相同報表資料集的不同檢視。
為協助視覺化群組所代表的意義,請參閱下圖,其中顯示預覽中的 Tablix 資料區域。在此圖中,資料列群組會依產品類型為資料集分類,而資料行群組則依地理區域和年份為資料集分類。
下列章節描述各種層面的群組。
[!附註]
您可以在 Business Intelligence Development Studio 中的報表產生器 3.0 及報表設計師中建立及修改報表定義 (.rdl)。每一個撰寫環境都提供了不同的方式讓您建立、開啟,以及儲存報表和相關的項目。如需詳細資訊,請參閱在報表設計師及報表產生器 3.0 (SSRS) 中設計報表,位於 microsoft.com 網站上。
構成群組的要素為何?
一個群組擁有一個您指定的名稱以及一組群組運算式。這組群組運算式可以是單一的資料集欄位參考,也可以是多個運算式的組合。在執行階段,群組運算式會結合起來 (如果群組具有多個運算式的話),並且套用至群組中的資料。例如,您所擁有的群組會使用日期欄位來組織資料區中的資料。在執行階段,資料會先依日期組織,然後顯示並加總每個日期的其他資料集值。
何時建立群組?
在大部分的情況下,報表產生器和報表設計師會在您設計資料區時,自動為您建立一個群組。若是資料表、矩陣或清單,當您將欄位放到 [群組] 窗格時,就會建立群組。若是圖表,則當您將欄位放在圖表放置區時,建立群組。若是量測計,您必須使用量測計屬性對話方塊。若是資料表、矩陣或清單,您也可以手動建立群組。如需詳細資訊,請參閱<如何:加入或刪除資料區域中的群組 (報表產生器 3.0 和 SSRS)>。如需有關如何在建立報表時加入群組的範例,請參閱<教學課程:建立基本資料表報表 (報表產生器 3.0)>或<教學課程:建立基本資料表報表>。
如何修改群組?
建立群組之後,您可以設定資料區專屬的屬性 (例如,篩選和排序運算式、分頁符號與群組變數) 來保存範圍專屬的資料。如需詳細資訊,請參閱<篩選、分組和排序資料 (報表產生器 3.0 和 SSRS)>。
若要修改現有的群組,請開啟適當的群組屬性對話方塊。您可以變更群組的名稱。同時,您可以根據單一欄位或多個欄位,或者根據在執行階段指定值的報表參數,指定群組運算式。您也可以根據一組運算式建立群組,例如,指定人口統計資料之年齡範圍的一組運算式。如需詳細資訊,請參閱<群組運算式範例 (報表產生器 3.0 和 SSRS)>。
[!附註]
如果您要變更群組的名稱,必須手動更新參照群組舊名稱的所有群組運算式。
如何組織群組?
了解群組組織可以協助您透過指定相同的群組運算式,設計可顯示相同資料之不同檢視的資料區域。
系統會針對每個資料區域,在內部將群組組織為一或多個階層的成員。群組階層擁有巢狀的父/子群組,而且可以擁有相鄰的群組。
如果您將父/子群組視為樹狀結構,每個群組階層都是樹狀結構的樹系。Tablix 資料區域包含資料列群組階層和資料行群組階層。與資料列群組成員相關聯的資料會以水平的方式跨頁面展開,而與資料行群組成員相關聯的資料會以垂直的方式向頁面下方展開。[群組] 窗格會針對目前在設計介面上選取的 Tablix 資料區域,顯示資料列群組和資料行群組成員。如需詳細資訊,請參閱<群組窗格 (報表產生器 3.0)>。
圖表資料區域包含類別目錄群組階層和數列群組階層。類別目錄群組成員會顯示在類別目錄軸上,而數列群組成員會顯示在數列軸上。
雖然量測計資料區域通常不需要,但是群組還是會讓您指定如何為資料分組以便針對量測計進行彙總。
每個資料區域提供哪些類型的群組?
展開為方格的資料區域支援的群組與以視覺方式顯示摘要資料的資料區域不同。因此,Tablix 資料區域,以及以 Tablix 資料區域為基礎的資料表、清單與矩陣支援的群組與圖表或量測計不同。下列章節討論在每個資料區域類型中分組的類型和用途。
[!附註]
雖然群組在不同的資料區域中有不同的名稱,但是建立與使用群組之方式背後的原則是相同的。當您針對資料區域建立群組時,會指定一種方式,從連結到資料區域的資料集組織詳細資料。每個資料區域都支援一個用於顯示群組資料的群組結構。
Tablix 資料區域中的群組:詳細資料、資料列與資料行群組
如本主題稍早所述,Tablix 資料區域可讓您依資料列或資料行,將資料組織到群組中。不過,資料列和資料行群組不是 Tablix 資料區域中提供的唯一群組。此資料區域可能有下列類型的群組:
詳細資料群組:詳細資料群組包含報表產生器或報表設計師套用資料集與資料區篩選後,來自報表資料集的所有資料。因此,詳細資料群組是唯一沒有群組運算式的群組。
基本上,詳細資料群組會指定您在查詢設計工具中執行資料集查詢時所看到的資料。例如,您所擁有的查詢會從銷售訂單資料表擷取所有資料行。因此,此詳細資料群組中的資料在資料表中包含所有資料行之每個資料列的所有值。此詳細資料群組中的資料也包含您已建立之所有導出資料集欄位的值。
[!附註]
詳細資料群組中的資料也可以包含伺服器彙總,這些是在資料來源上導出,並在查詢中擷取的彙總。根據預設,除非您的報表包含使用 Aggregate 函數的運算式,否則報表產生器和報表設計師會將伺服器彙總視為詳細資料。如需詳細資訊,請參閱<彙總>。
根據預設,當您將資料表或清單加入到報表時,報表產生器和報表設計師會為您自動建立詳細資料群組,並加入資料列來顯示詳細資料。根據預設,當您將資料集欄位加入到此資料列中的資料格時,您會看到欄位的簡單運算式,例如 [Sales]。當您檢視資料區域時,詳細資料列會針對結果集中的每個值重複一次。
資料列群組和資料行群組:您可以依資料列或資料行將資料組織到群組中。資料列群組會以垂直方式,在頁面上展開。資料行群組則會以水平方式,在頁面上展開。群組可以是巢狀的,例如,先依 [Year] 分組,再依 [Quarter] 分組,然後依 [Month] 分組。群組也可以是相鄰的,例如,針對 [Territory] 分組,另外依 [ProductCategory] 分組。
當您建立資料區的群組時,報表產生器和報表設計師會將資料列或資料行自動加入資料區,然後使用這些資料列或資料行顯示群組資料。
遞迴階層群組:遞迴階層群組會從單一的報表資料集,組織包含多個層級的資料。例如,遞迴階層群組可以顯示組織階層,例如,回報給 [Employee] 的 [Employee]。Reporting Services 會提供群組屬性和內建函數,讓您針對此種報表資料建立群組。如需詳細資訊,請參閱<建立遞迴階層群組 (報表產生器 3.0 和 SSRS)>。
下列清單摘要說明您針對每個資料區域使用群組的方式:
資料表:定義巢狀資料列群組、相鄰資料列群組及遞迴階層資料列群組 (例如針對組織圖)。根據預設,資料表包含詳細資料群組。將資料集欄位拖曳到所選資料表的 [群組] 窗格來加入群組。
矩陣:定義巢狀資料列和資料行群組,以及相鄰資料列和資料行群組。將資料集欄位拖曳到所選矩陣的 [群組] 窗格來加入群組。
清單:根據預設,支援詳細資料群組。一般用途為支援群組的一個層級。將資料集欄位拖曳到所選清單的 [群組] 窗格來加入群組。
加入群組之後,資料區域的資料列和資料行控點會變更以反映群組成員資格。當您刪除群組時,可以選擇僅刪除群組定義,或刪除群組及其所有關聯的資料列和資料行。如需詳細資訊,請參閱<了解 Tablix 資料區域資料格、資料列及資料行 (報表產生器 3.0 和 SSRS)>。
若要將資料限制為在詳細資料或群組資料的計算中顯示或使用,請針對群組設定篩選。如需詳細資訊,請參閱<加入資料集篩選、資料區域篩選和群組篩選 (報表產生器 3.0 和 SSRS)>。
根據預設,當您建立群組時,群組的排序運算式與群組運算式相同。若要變更排序次序,請變更排序運算式。如需詳細資訊,請參閱<篩選、分組和排序資料 (報表產生器 3.0 和 SSRS)>。
了解 Tablix 資料格的群組成員資格
Tablix 資料區域之資料列或資料行中的資料格可以屬於多個資料列和資料行群組。當您在資料格的文字方塊中定義使用彙總函式 (例如 =Sum(Fields!FieldName.Value) 的運算式時,資料格的預設群組範圍是其所屬的最內部子群組。當資料格同時屬於資料列和資料行群組時,其範圍是兩個最內部的群組。您也可以撰寫運算式,計算某個群組相對於另一組資料之範圍的彙總小計。例如,您可以計算某個群組相對於資料行群組,或相對於資料區域之所有資料的百分比 (例如 =Sum(Fields!FieldName.Value)/Sum(Fields!FieldName.Value,"ColumnGroup"))。如需詳細資訊,請參閱<了解 Tablix 資料區域 (報表產生器 3.0 和 SSRS)>和<了解總計、彙總與內建集合的運算式範圍 (報表產生器 3.0 和 SSRS)>。