將資料集篩選、資料區篩選和群組篩選新增至編頁報告 (報表產生器和 SSRS)

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

在編頁報告中,篩選屬於您所建立的資料集、資料區或資料區群組的一部分,用來限制報表中所要使用的資料。 如果您無法變更資料集查詢,那麼篩選便是協助您控制報表資料的好辦法。 例如,如果您正在使用共用的資料集,您可能需要篩選。

篩選可協助您控制要在報表中顯示和處理哪些資料。 您可以為資料集、資料區或群組的任意組合指定篩選。

如需詳細資訊,請參閱將篩選新增至資料集 (報表產生器)篩選方程式範例 (報表產生器)

注意

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

選擇設定篩選的時間

當您無法篩選來源的資料時,請指定報表項目的篩選。 例如,當資料來源不支援查詢參數時,請使用報表篩選。 或者,當您必須執行預存程序但無法修改查詢,或者參數化報表快照集會針對不同的使用者顯示自訂資料時,請使用報表篩選。

您可以在擷取報表資料集之前或之後,篩選報表資料。 若要在擷取資料之前篩選資料,請針對每個資料集變更查詢。 當您篩選查詢中的資料時,您會篩選資料來源中的資料,這樣會減少在報表中擷取及處理所需的資料量。 若要在擷取資料之後篩選資料,請在報表中建立篩選運算式。 您可以為資料集、資料區或群組 (包括詳細資料群組) 設定篩選運算式。 您也可以在篩選運算式中包含參數。 此動作提供了針對特定值或特定使用者篩選資料的方法。 例如,您可以篩選可識別檢視報表之使用者的值。

選擇設定篩選的位置

依據您想要在報表中達成的效果,判斷要設定篩選的位置。 在執行階段,報表處理器會按照下列順序套用篩選:套用至資料集、套用至資料區,然後由上而下套用至每個群組階層中的群組。 在資料表、矩陣和清單上,系統會針對資料列群組、資料行群組和相鄰群組獨立套用篩選。 在圖表上,系統會針對類別目錄群組和數列群組獨立套用篩選。 當報表處理器套用篩選時,系統就會按照在每個報表項目之 [屬性] 對話方塊的 [篩選] 頁面上定義的順序套用所有篩選方程式,而這就相當於使用布林值 AND 作業來結合這些篩選方程式。

下列清單會比較針對不同報表項目設定篩選的效果:

  • 資料集:當您想讓繫結至單一資料集的一個或多個資料區以相同的方式篩選時,請設定資料集的篩選。 例如,您可以針對同時繫結至顯示銷售資料之資料表和顯示相同資料之圖表的資料集設定篩選。

  • 資料區:當您想讓繫結至單一資料集的一個或多個資料區提供不同的資料集檢視時,請設定資料區的篩選。 例如,您可以在同一份報表中,設定某個資料表資料區的篩選來顯示銷售量前 10 名的商店,並且設定不同資料表資料區的篩選來顯示銷售量後 10 名的商店。

  • Tablix 資料區中的資料列或資料行群組:當您想要針對群組運算式包含或排除特定值來控制要在資料表、矩陣或清單中顯示哪些群組值時,請設定群組的篩選。

  • Tablix 資料區中的詳細資料群組:當您針對某個資料區設有多個詳細資料群組,而且想讓每個詳細資料群組顯示資料集中的不同資料組時,請設定詳細資料群組的篩選。

  • 圖表資料區域中的數列或類別群組:當您想要針對群組運算式包含或排除特定值來控制要在圖表中顯示哪些值時,請設定數列或類別群組的篩選。

回到頁首

了解篩選方程式

在執行階段,報表處理器會將值轉換成指定的資料類型,然後使用指定的運算子來比較運算式和值。 下列清單將描述篩選方程式的每個部分:

  • 運算式:定義您要篩選的項目。 一般而言,此欄位便是資料集欄位。

  • 資料類型:指定報表處理器在執行階段評估篩選方程式時要使用的資料類型。 您所選取的資料類型必須是報表定義結構描述所支援的其中一種資料類型。

  • 運算子:定義如何比較篩選方程式的兩個部分。

  • :定義要在比較中使用的運算式。

下列各節將描述篩選方程式的每個部分。

運算是

當報表處理器在執行階段評估篩選方程式時,運算式和值的資料類型必須相同。 您針對 [運算式] 選取的欄位資料類型是由用來從資料來源中擷取資料的資料處理延伸模組或資料提供者所決定。 您針對 [值] 輸入的運算式資料類型是由預設值所決定。 支援報表定義的資料類型會決定資料類型的選擇。 資料提供者可能會將資料庫值轉換成 CLR 類型。

資料類型

若要讓報表處理器比較兩個值,其資料類型必須相同。 下表將列出 CLR 資料類型與報表定義資料類型之間的對應。 您從資料來源中擷取的資料可能會在資料是報表資料時轉換成不同的資料類型。

報表定義結構描述資料類型 CLR 類型
布林值 布林值
DateTime DateTimeDateTimeOffset
整數 Int16Int32UInt16ByteSByte
Float SingleDoubleDecimal
Text StringCharGUIDTimespan

如果您必須指定資料類型,就可以在運算式的 Value 部分中指定自己的轉換。

運算子

下表將列出您可以在篩選方程式中使用的運算子,以及報表處理器用來評估篩選方程式的項目。

運算子 動作
Equal、Like、NotEqual、GreaterThan、GreaterThanOrEqual、LessThan、LessThanOrEqual 比較運算式與單一值。
TopN、BottomN 比較運算式與單一 整數 值。
TopPercent、BottomPercent 比較運算式與單一 整數浮點數 值。
介於 測試運算式是否位於 (包含) 兩個值之間。
位置 測試運算式是否包含在一組值之中。

Value 運算式會指定篩選方程式的最終部分。 報表處理器會將評估的運算式轉換成您所指定的資料類型,然後評估整個篩選方程式,以便判斷在 [運算式] 中指定的資料是否通過篩選。

若要轉換成不是標準 CLR 資料類型的資料類型,您必須修改運算式,以便明確轉換成資料類型。 在 [運算式] 對話方塊中,您可以使用列於 [一般函數] 之 [轉換] 底下的轉換函式。 例如,若為欄位 ListPrice (代表在 SQL Server 資料來源上儲存成 money 資料類型的資料),資料處理延伸模組就會將欄位值傳回成 Decimal 資料類型。 若要將篩選設定成僅使用報表貨幣中大於 $50000.00 的值,請使用運算式 =CDec(50000.00),將此值轉換成十進位。

這個值也可以包含參數參考,以便允許使用者以互動方式選取要篩選的值。

回到頁首

報表中的運算式用法 (報表產生器)
報表參數 (報表產生器和報表設計師)