改ページ対応レポートにデータセット フィルター、データ領域フィルター、およびグループ フィルターを追加する (レポート ビルダー)

適用対象: Microsoft レポート ビルダー (SSRS) Power BI Report Builder SQL Server Data Tools のレポート デザイナー

改ページ対応レポートのフィルターは、レポート内で使用されるデータを制限するために作成したデータセット、データ領域、またはデータ領域グループの一部です。 データセット クエリを変更できない場合 (共有データセットを使用している場合など)、レポート データを制御する方法としてフィルターを使用できます。

レポートにどのようなデータを表示し、どのようなデータを処理するかは、フィルターを使用して制御できます。 フィルターは、データセット、データ領域、またはグループに対して指定できるほか、複数のフィルターを自由に組み合わせて指定できます。

詳細については、「データセットへのフィルターの追加 (レポート ビルダーおよび SSRS)」およびフィルター式の例 (レポート ビルダーおよび SSRS) に関する記事を参照してください。

注意

ページ分割されたレポートの定義ファイル (.rdl) は、Microsoft レポート ビルダー、Power BI レポート ビルダー、または SQL Server Data Tools のレポート デザイナーを使用して作成および変更できます。

フィルターを設定する状況の選択

レポート アイテムに対するフィルターは、ソース側でデータをフィルター処理できない場合に指定します。 たとえば、データ ソースがクエリ パラメーターをサポートしていない、ストアド プロシージャを実行する関係上、クエリに変更を加えることができない、パラメーター化されたレポートのスナップショットで、ユーザーごとにカスタマイズしたデータを表示する場合などは、レポート フィルターを使用します。

レポート データセットを取得する前または後に、レポート データをフィルター処理できます。 取得前にデータをフィルター処理するには、各データセットのクエリを変更します。 クエリでデータをフィルター処理すると、データ ソース側でデータがフィルター処理されて、レポート データの取得と処理に必要なデータ量を低減できます。 取得後にデータをフィルター処理するには、レポートにフィルター式を作成します。 データセット、データ領域、または詳細グループをはじめとするグループに対してフィルター式を設定できます。 フィルター式にパラメーターを含めることもできるため、レポートの表示ユーザーを識別する値に基づいてフィルター処理するなど、特定の値または特定ユーザーのデータをフィルター処理する手段が得られます。

フィルターを設定する場所の選択

フィルターの設定場所は、レポートにどのような効果を持たせるかに基づいて判断します。 レポート プロセッサは実行時に、データセット、データ領域、グループの順にフィルターを適用します。グループについては、フィルターがグループ階層の上から順に適用されます。 テーブル、マトリックス、および一覧では、行グループ、列グループ、および隣接するグループに対してフィルターが別々に適用されます。 グラフでは、カテゴリ グループと系列グループに対するフィルターが別々に適用されます。 レポート プロセッサがフィルターを適用するとき、すべてのフィルター式が、各レポート アイテムの [プロパティ] ダイアログ ボックスの [フィルター] ページに定義されている順序で適用されます。これは、フィルター式を論理 AND 演算子で結合した結果に相当します。

次に、フィルターを設定した場合の効果を各種のレポート アイテムごとに説明します。

  • データセット 単一のデータセットに関連付けられている 1 つまたは複数のデータ領域を同じ方法でフィルター処理する必要がある場合は、そのデータセットに対してフィルターを設定します。 たとえば、同じ売上データを表示するテーブルとグラフの両方に同じデータセットが関連付けられている場合は、そのデータセットに対してフィルターを設定します。

  • データ領域 単一のデータセットに 1 つまたは複数のデータ領域が関連付けられており、そのデータセットをそれぞれ異なる角度から眺めた結果を表示させている場合は、データ領域に対してフィルターを設定します。 たとえば、同じレポートに 2 つのテーブル データ領域が存在するとき、一方のテーブル データ領域には、売上高の上位 10 店舗を表示するフィルターを設定し、もう一方のテーブル データ領域には、下位 10 店舗を表示するフィルターを設定します。

  • Tablix データ領域の行グループまたは列グループ グループ式の特定の値を含めたり除外したりすることによって、テーブル、マトリックス、または一覧に表示させるグループ値を制御する場合は、グループに対してフィルターを設定します。

  • Tablix データ領域の詳細グループ データ領域に複数の詳細グループが存在するとき、データセットから異なるデータを取得しながら、それぞれ別々の詳細グループに表示させる場合は、詳細グループに対してフィルターを設定します。

  • グラフ データ領域の系列グループまたはカテゴリ グループ グループ式の特定の値を含めたり除外したりすることによって、グラフに表示させる値を制御する場合は、系列グループまたはカテゴリ グループに対してフィルターを設定します。

トップに戻る

フィルター式について

レポート プロセッサは、実行時に値を指定のデータ型に変換し、指定された演算子を使って式と値を比較します。 フィルター式の各部分の説明を次に示します。

  • フィルター処理の対象を定義します。 通常、これは、データセット フィールドです。

  • データ型 実行時にレポート プロセッサによってフィルター式が評価される際に使用されるデータ型を指定します。 レポート定義スキーマでサポートされているデータ型を選択する必要があります。

  • 演算子 フィルター式の右辺と左辺をどのように比較するかを定義します。

  • 比較に使用する式を定義します。

以降の各セクションで、フィルター式の各部分について説明します。

レポート プロセッサが実行時にフィルター式を評価するためには、式のデータ型と値のデータ型とが一致している必要があります。 [式] に対して選択されているフィールドのデータ型は、データ ソースからデータを取得するときに使用されるデータ処理拡張機能またはデータ プロバイダーによって判断されます。 [値] に対して入力された式のデータ型は、既定の設定に基づいて判断されます。 どのデータ型が使用されるかは、レポート定義でサポートされているデータ型によって決まります。 データベースから取得された値は、データ プロバイダーによって CLR 型に変換される場合があります。

データ型

レポート プロセッサが 2 つの値を比較するためには、データ型が同じであることが条件となります。 次の表は、CLR データ型とレポート定義のデータ型の対応関係を示しています。 データ ソースから取得されたデータが、別のデータ型に変換されてレポート データになる場合もあります。

レポート定義スキーマのデータ型 CLR 型
Boolean Boolean
DateTime DateTimeDateTimeOffset
整数 Int16Int32UInt16ByteSByte
Float SingleDoubleDecimal
[テキスト] StringCharGUIDTimespan

データ型を指定する必要がある場合は、式の [値] に対して適切な変換を指定できます。

演算子

次の表は、フィルター式に使用できる演算子と、その演算子を使用したフィルター式の評価方法の一覧です。

演算子 アクション
Equal、Like、NotEqual、GreaterThan、GreaterThanOrEqual、LessThan、LessThanOrEqual 式と単一の値とを比較します。
TopN、BottomN 式と単一の Integer 値とを比較します。
TopPercent、BottomPercent 式と単一の値 ( Integer または Float ) とを比較します。
[次の値の間] 式が 2 つの値の範囲内にあるかどうかを調べます。
含まれる 式が特定の値の集合に含まれるかどうかを調べます。

[値] 式は、フィルター式の最後の部分を指定します。 レポート プロセッサは、[式] で指定されたデータにフィルターの通過を許可するかどうかを判断する際、評価対象の式を指定のデータ型に変換した後、フィルター式全体を評価します。

標準の CLR データ型以外の型に変換するためには、特定のデータ型へと明示的に変換するように、式を修正する必要があります。 この変換には、 [式] ダイアログ ボックス ( [共通の関数][変換] ) に表示される変換関数を使用できます。 たとえば、SQL Server データ ソースの money データ型として格納されているデータを表す ListPrice フィールドがあるとします。データ処理拡張機能は、フィールドの値を Decimal データ型として返します。 このとき、レポートの通貨で $50000.00 を超える値だけを使用するようにフィルターを設定するには、 =CDec(50000.00)という式を使って、この値を Decimal 型に変換します。

フィルターに使用する値をユーザーが対話形式で選択できるように、この値にパラメーター参照を含めることもできます。

トップに戻る

参照

レポートでの式の使用 (レポート ビルダーおよび SSRS)
レポート パラメーター (レポート ビルダーおよびレポート デザイナー)