共用方式為


篩選、分組和排序 Report Builder 編頁報告中的資料

適用於:Microsoft 報表產生器 (SSRS) Power BI Report Builder SQL Server Data Tools 中的報表設計師

在編頁報告中,運算式用來協助您控制、組織和排序報表資料。 依預設,在您建立資料集與設計報表配置時,報表項目的屬性會自動設定為運算式。 此行為是以 [報表資料] 窗格中顯示的資料集欄位、參數和其他項目為基礎。 您也可以將互動式排序按鈕新增至資料表或矩陣圖資料格,讓使用者以互動方式變更群組或群組內資料列的資料列排序順序。

  • 篩選條件運算式:篩選條件運算式會依據您所指定的比較方式,測試包含或排除的資料。 在從資料連接擷取資料後,篩選便會套用到報表中的資料。 您可以將任何篩選條件組合新增至下列項目:

    • 報表伺服器上的共用資料集定義。
    • 報表中的共用資料集執行個體或內嵌資料集。
    • 資料區,例如資料表或圖表。
    • 資料區群組,例如資料表中的資料列群組或圖表中的類別群組。
  • 群組運算式:群組運算式會依據資料集欄位或其他值來組織資料。 系統會在您建立報表配置時自動建立群組運算式。 將篩選套用到資料之後,以及在結合報表資料和資料區之時,報表處理器會評估群組運算式。 您可以在建立群組運算式之後加以自訂。

  • 排序運算式:排序運算式會控制資料出現在資料區中的次序。 系統會在您建立報表配置時自動建立排序運算式。 根據預設,群組的排序運算式會設定為與群組運算式相同的值。 您可以在建立排序運算式之後加以自訂。

  • 互動式排序:您可以將互動式排序按鈕加入到資料表或矩陣中的資料行標頭或群組首資料格,讓使用者排序資料行或反轉資料行的排序次序。

為協助使用者自訂篩選、群組或排序運算式,您可以變更運算式,以將參考加入至報表參數。 如需詳細資訊,請參閱編頁報告參數 (Report Builder)

如需詳細資訊和範例,請參閱下列文章:

注意

您可以在 Microsoft 報表產生器、Power BI 報表產生器,以及 SQL Server Data Tools 的報表設計師中,建立及修改編頁報告定義 (.rdl) 檔案。

篩選報表中的資料

篩選是報表的一部分,有助於控制從資料連接擷取的報表資料。 如果您無法在從外部資料來源擷取資料之前,變更資料集查詢來篩選資料,請使用篩選。

如果可能,請建置只會傳回需要顯示在報表中之資料的資料集查詢。 您可透過減少必須擷取和處理的資料量,協助增進報表效能。 如需詳細資訊,請參閱報表內嵌資料集和共用資料集 (報表產生器及 SSRS)

從外部資料來源擷取資料之後,您可以將篩選新增至:

  • 資料集。
  • 資料區域。
  • 資料區群組,包括詳細資料群組。

篩選會在執行階段先套用至資料集,然後再繼續套用至資料區。 然後,篩選會套用至群組 (按照群組階層的由上而下順序)。 在資料表、矩陣或清單中,系統會針對資料列群組、資料行群組和相鄰群組獨立套用篩選。 在圖表中,系統會針對類別目錄群組和數列群組獨立套用篩選。 如需詳細資訊,請參閱將資料集篩選、資料區篩選和群組篩選新增至編頁報告 (Report Builder)

針對每個篩選,您會指定一個 「篩選方程式」 (Filter Equation)。 篩選方程式包含三個元素:

  • 指定要篩選資料的資料集欄位或運算式。
  • 運算子。
  • 要比較的值。

在處理項目時,只會包含符合篩選條件的資料值。

您可以在篩選條件運算式中包含參數,以協助使用者控制報表中的資料。 如需詳細資訊,請參閱編頁報告中的參數集合參考 (Report Builder)

若要自訂每個使用者的檢視,您可以在篩選中包含內建欄位 UserID 的參考。 如需詳細資訊,請參閱編頁報告中的全域和使用者參考 (Report Builder)

將報表中的資料分組

群組可組織報表中的資料以供顯示或計算彙總值。 了解如何定義群組以及使用群組功能可協助您設計更精確的報表。

系統會在您執行下列動作時自動建立群組運算式:

  • 在 [資料表]、[矩陣圖] 或 [圖表] 精靈中排列排序資料集欄位,或是在 [地圖] 精靈中比對欄位。
  • 在資料表、矩陣圖或清單中,將欄位新增至 [群組] 窗格中的 [資料列群組] 或 [資料行群組] 區域。
  • 在圖表中,將欄位加入至 [圖表資料] 窗格中的 [類別群組] 或 [數列群組] 區域。
  • 在地圖中,指定欄位,以比對地圖元素與 [圖層資料] 操作功能表項目中的分析資料。

群組是報表定義的一部分。 每個群組都有一個名稱。 依預設,群組名稱是以其來源的資料集欄位為基礎。

在資料表或矩陣區域內,您可以建立多個資料列群組和資料行群組。 您可以透過組織巢狀群組、相鄰群組及遞迴階層群組 (例如組織圖),以視覺階層顯示您的資料。

群組名稱會識別運算式範圍。 您可以將群組的名稱指定成下列作業的執行範圍:

  • 計算彙總。
  • 在向下鑽研報表中以階層方式組織資料並從父節點切換為子節點的顯示。
  • 在多個資料區中顯示相同資料的不同檢視。
  • 視覺化資料表、矩陣圖、圖表、量測計或地圖中的摘要資料。

如需詳細資訊,請參閱編頁報告中總計、彙總與內建集合的運算式範圍 (Report Builder)

若要在數個資料集欄位上分組,請將每個欄位加入到群組運算式集合。 您也可以在 Microsoft Visual Basic 中撰寫自己的群組運算式。 例如,您可以依據值的範圍分組,或者使用報表參數為使用者提供選取如何在資料區中分組資料的選項。 如需詳細資訊,請參閱編頁報告中的運算式範例 (Report Builder)

若要減少每個頁面的資料量並協助您管理報表呈現的效能,您可以在每個群組或每個群組執行個體的前後新增分頁符號。 如需詳細資訊,請參閱將分頁符號新增至編頁報告 (Report Builder)

建立資料區群組是在報表中組織資料的一種方法。 另外還有其他幾種組織資料的方法,每一種都有其各自的優點。 如需詳細資訊,請參閱編頁報告中的鑽研、向下鑽研、子報表和巢狀資料區 (Report Builder)

定義群組變數

當您定義群組時,可以建立群組變數,以便在以群組為範圍並可從巢狀群組存取的運算式中使用。 群組變數會針對每個群組執行個體計算一次,而您可以從子群組中的運算式進行存取。 例如,如果資料是依區域和子區域分組,您可以計算每個區域的稅額,並在子區域群組的計算中使用該稅額。

如需詳細資訊,請參閱編頁報告中的報表和群組變數參考 (Report Builder)編頁報告中總計、彙總和內建集合的運算式範圍 (Report Builder)

資料區域中的群組和範圍

您可以為每個資料區指定相同的群組運算式,以提供相同資料集內資料的多個檢視。 例如,您可以顯示分類資料,以在資料表中顯示所有詳細資料,並在圖形圖中顯示彙總,同時協助您以相對於整個資料集的方式視覺化每個類別目錄。 如需詳細資訊,請參閱將多個資料區連結至編頁報告的同一資料集 (Report Builder)

當您在資料表、矩陣或清單的資料格中建立巢狀資料區時,您會自動將資料的範圍設定成該資料格的最內層群組成員資格。 例如,假設您將圖表加入到同時位於資料列群組和資料行群組的資料格中。 可用於該圖表的資料範圍在執行階段便為最內層的資料列群組執行個體與最內層的資料行群組執行個體。 如需詳細資訊,請參閱編頁報告中總計、彙總與內建集合的運算式範圍 (Report Builder)

排序報表中的資料

若要控制報表中資料的排序次序,您可以在資料集查詢中排序資料,或針對資料區或群組定義排序運算式。 您也可以將互動式排序按鈕加入到資料表和矩陣,讓使用者變更資料列的排序次序。

三種類型的排序全都可以在相同的報表中結合。 依預設,排序次序是由資料集查詢傳回資料的順序來決定。 排序運算式會套用在資料區和資料區群組中。 互動式排序則是在排序運算式之後套用。

對於包含彙總函數的運算式,排序次序不會影響大多數結果。 排序次序會影響下列彙總函數的傳回值:第一個最後一個上一個。 如需詳細資訊,請參閱Report Builder 函數 - 編頁報告中的彙總函數參考 (Report Builder)

排序資料集查詢中的資料

若要在針對報表擷取資料之前先進行預先排序,請將排序次序加入到資料集查詢中。 透過排序查詢中的資料,排序工作會由資料來源而非報表處理器完成。

針對 Microsoft SQL Server 資料來源類型,您可以將 ORDER BY 子句新增至資料集查詢。 例如,下列 Transact-SQL 查詢會從 SalesOrders 資料表,依遞減順序來排序 Sales 和 Region by Sales 資料行:SELECT Sales, Region FROM SalesOrders ORDER BY Sales DESC

注意

並非所有資料來源都支援在查詢中指定排序次序的能力。

使用排序運算式排序資料

若要在資料從資料來源擷取後排序報表中的資料,您可以針對 Tablix 資料區域或群組 (包括詳細資料群組) 設定排序運算式。 下列清單描述針對不同項目設定排序運算式的效果:

  • Tablix 資料區:在執行階段套用資料集篩選和資料區域篩選之後,針對資料表、矩陣或清單資料區域設定排序運算式來控制資料在資料區域中的排序次序。

  • Tablix 資料區群組:設定每個群組 (包括詳細資料群組) 的排序運算式來控制群組執行個體的排序次序。 例如,您可以在 [詳細資料] 群組中,控制詳細資料列的次序。 若是子群組,您可以針對父群組中的子群組,控制群組執行個體的次序。 根據預設,當您建立群組時,排序運算式會設定為群組運算式以及遞增順序。

    如果您只有一個詳細資料群組,您可以在查詢中、資料區域上,或詳細資料群組上,將排序運算式定義為相同的效果。

  • 圖表資料區域:設定類別和數列群組的排序運算式來控制資料點的排序次序。 根據預設,資料點的次序也是色彩在圖表圖例中的次序。 如需詳細資訊,請參閱設定編頁報告圖表上數列色彩的格式 (Report Builder)

  • 地圖報表項目:您通常不需要排序地圖資料區的資料,因為地圖會將要顯示在地圖元素上的資料分組。

  • 量測計資料區:您通常不需要排序量測計資料區的資料,因為量測計會顯示相對於某個範圍的單一值。 如果您需要排序量測計中的資料,則必須先定義一個群組,然後設定該群組的排序運算式。

依不同的值排序

您可按照欄位值以外的其他值來排序資料區中的資料列。 例如,假設 [大小] 欄位包含對應於小、中、大和超大的文字值。 依預設,以 [大小] 為根據之資料列群組的排序運算式也稱為 [Size]。 若要更進一步控制排序的資料,您可以將欄位加入到定義所需排序次序的資料集查詢中。

或者,您也可以定義只包含大小的資料集,以及用來指定所需次序的值。 您可以將排序運算式變更為使用 Lookup 函數做為排序次序值。

例如,假設下列 Transact-SQL 查詢定義名為 Sizes 的資料集。 此查詢會使用 CASE 陳述式,針對 Size 的每個值定義排序次序值 SizeSortOrder:

SELECT Size,   
  CASE Size  
        WHEN 'S' THEN 1  
        WHEN 'M' THEN 2    
        WHEN 'L' THEN 3  
        WHEN 'XL' THEN 4  
        ELSE 0  
  END as SizeSortOrder  
FROM Production.Product  

在具有以 [大小] 做為根據之資料列群組的資料表中,您可以變更群組排序運算式,以使用 Lookup 函數來尋找對應於大小值的數值欄位。 這個運算式類似於此範例:

=Lookup(Fields!Size.Value, Fields!Size.Value, Fields!SizeSortOrder.Value, "Sizes")  

如需詳細資訊,請參閱在編頁報告中排序資料區域內的資料 (Report Builder)報表產生器函數 - 在編頁報告中使用 Lookup 函數 (Report Builder)

為使用者新增互動式排序

您可以將互動式排序按鈕加入到資料行標頭和群組首,讓使用者變更資料表或矩陣中報表資料的排序次序。 使用者可以選取按鈕來切換排序次序。 系統以可讓使用者互動的轉譯格式支援互動式排序,例如 HTML。

您可以將互動式排序按鈕加入到 Tablix 資料區資料格裡的文字方塊中。 依預設,每個資料格都包含一個文字方塊。 在文字輸入框屬性中,您可以指定要排序資料表或矩陣資料區域的哪個部分 (父群組值、子群組值或詳細資料列)。 您可指定排序的依據,以及是否要將排序運算式套用到具有對等關聯性的其他報表項目。 例如,如果在相同資料集中提供檢視的資料表和圖表都包含在矩形中,它們就是對等資料區。 當使用者在資料表中切換排序次序時,圖表的排序次序也會切換。 如需詳細資訊,請參閱編頁報告中的互動式排序 (Report Builder)

How-To 主題