Share via


データセット フィールド コレクション (レポート ビルダーおよび SSRS)

データセット フィールドは、データ接続のデータを表します。 フィールドは数値データまたは非数値データを表すことができます。 売上高、売上合計、顧客名、データベース識別子、URL、画像、空間データ、電子メール アドレスなどがその例です。 デザイン画面では、フィールドがテキスト ボックス、テーブル、グラフなどのレポート アイテムの式として表示されます。

レポートには、データセット フィールド、データセット計算フィールド、および組み込みフィールドという 3 種類のフィールドがあり、レポート データ ペインに表示されます。

  • データセット フィールド : データ ソースにデータセット クエリを実行したときに返されるフィールドのコレクションを表すメタデータ。

  • データセット計算フィールド : データセットに作成する追加フィールド。 各計算フィールドは、ユーザー定義の式を評価して作成されます。

  • 組み込みフィールド : レポート ビルダーによって提供されるフィールドのコレクションを表すメタデータで、レポートの処理時にレポート名や時間などのレポート情報を提供します。 詳細については、「組み込み Globals および Users 参照 (レポート ビルダーおよび SSRS)」をご覧ください。

データセットのフィールド名は、レポートのデータセット定義の一部として保存されます。 詳細については、「レポート埋め込みデータセットと共有データセット (レポート ビルダーおよび SSRS)」を参照してください。

Note

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

データセット フィールドとクエリ

データセット フィールドは、データセット クエリ コマンドおよびユーザー定義の計算フィールドによって指定されます。 レポートに表示されるフィールド コレクションは、データセットの型に依存します。

  • 共有データセット : フィールド コレクションは、共有データセットをレポートに直接追加したときや、共有データセットを含むレポート パーツを追加したときの、共有データセット定義内のクエリのフィールドの一覧です。 レポート サーバー上で共有データセット定義が変更されても、ローカル フィールド コレクションは変化しません。 ローカル フィールド コレクションを更新するには、ローカル共有データセットの一覧を更新する必要があります。

    注意

    レポート パーツは、SQL Server Reporting Services 2019 以降の SQL Server Reporting Services のすべてのリリースと、Power BI Report Server 2022 年 9 月以降の Power BI Report Server のすべてのリリースで廃止になっています。

  • 埋め込みデータセット : フィールド コレクションは、データ ソースに対して現在のクエリを実行したときに返されるフィールドの一覧です。

詳細については、「レポート データ ペインでのフィールドの追加、編集、更新 (レポート ビルダーおよび SSRS)」を参照してください

計算フィールド

計算フィールドは、式を作成して手動で指定します。 計算フィールドは、データ ソースに存在しない新しい値を作成するために使用できます。 たとえば、計算フィールドでは、新しい値を表すほかに、一連のフィールド値のカスタム並べ替え順や、別のデータ型に変換される既存のフィールドを表すことができます。

計算フィールドは、レポートに対してローカルであり、共有データセットの一部として保存することはできません。

詳細については、「レポート データ ペインでのフィールドの追加、編集、更新 (レポート ビルダーおよび SSRS)」を参照してください。

エンティティとエンティティ フィールド

レポート モデル データ ソースを使用する場合、レポート データとしてエンティティとエンティティ フィールドを指定します。 レポート モデルのクエリ デザイナーでは、関連エンティティを対話的に探索して選択し、レポート データセットに含めるフィールドを選択することができます。 クエリのデザインを終了すると、レポート データ ペインにエンティティの識別子とエンティティ フィールドのコレクションが表示されます。 エンティティの識別子はレポート モデルにより自動的に生成され、通常エンド ユーザーには表示されません。

拡張フィールド プロパティの使用

SQL Server Analysis Servicesなどの多次元クエリをサポートするデータ ソースは、フィールドのフィールド プロパティをサポートします。 フィールド プロパティは、クエリの結果セットに表示されますが、 レポート データ ペインには表示されません。 これらは、レポートで使用することが可能です。 フィールドのプロパティを参照するには、フィールドをレポートにドラッグし、既定のプロパティの Value を、目的のプロパティのフィールド名に変更します。 たとえば、 Analysis Services キューブでは、キューブ セルの値の書式を定義できます。 書式設定された値は、フィールド プロパティ FormattedValueを使用することにより使用できます。 値を使用してテキスト ボックスの書式プロパティを設定するのではなく、値を直接使用するには、フィールドをテキスト ボックスにドラッグして、既定式 =Fields!FieldName.Value=Fields!FieldName.FormattedValueに変更します。

Note

すべての Field プロパティをすべてのデータ ソースに使用できるわけではありません。 ValueIsMissing プロパティは、すべてのデータ ソースで定義されます。 その他の定義済みプロパティ (多次元データ ソースの KeyUniqueNameParentUniqueName など) は、データ ソースがそれらのプロパティを提供している場合にのみサポートされます。 一部のデータ プロバイダーでは、カスタム プロパティがサポートされます。 詳細については、「レポート埋め込みデータセットと共有データセット (レポート ビルダーおよび SSRS)」のお使いのデータ ソースの拡張フィールド プロパティに関する特定のトピックを参照してください。 たとえば、SQL Server Analysis Services データ ソースの場合は、「Analysis Services Database データベースに対する拡張フィールド プロパティ (SSRS)」を参照してください。

フィールドの既定式について

テキスト ボックスは、レポート本文のテキスト ボックス レポート アイテム、または Tablix データ領域のセル内のテキスト ボックスです。 フィールドをテキスト ボックスにリンクするとき、テキスト ボックスの位置によって、フィールド参照の既定式が決定されます。 レポート本文のテキスト ボックス値の式は、集計およびデータセットを指定する必要があります。 レポートに 1 つのデータセットしか存在しない場合、この既定式が作成されます。 数値を表すフィールドの場合、既定の集計関数は Sum です。 数値以外の値を表すフィールドの場合、既定の集計は First です。

Tablix データ領域では、既定のフィールド式は、フィールドを追加するテキスト ボックスの行およびグループ メンバーシップに依存します。 テーブルの詳細行のテキスト ボックスに追加した場合、フィールド Sales のフィールド式は、 [Sales]です。 同じフィールドをグループ ヘッダー内のテキスト ボックスに追加した場合、グループ ヘッダーには詳細値ではなくグループの集計値が表示されるので、既定の式は (Sum[Sales])です。 レポートの実行時に、レポート プロセッサによって各式が評価され、レポート内の結果が置き換えられます。

式の詳細については、「式 (レポート ビルダーおよび SSRS)」を参照してください。

フィールド データ型

データセットを作成したとき、データ ソースのフィールドのデータ型がレポートで使用される正確なデータ型ではない場合があります。 データ型は、1 つまたは 2 つのマッピング レイヤーを通過することがあります。 データ処理拡張機能またはデータ プロバイダーが、データ ソースのデータ型を共通言語ランタイム (CLR) データ型にマップすることがあります。 データ処理拡張機能によって返されるデータ型は、 .NET Frameworkの共通言語ランタイム (CLR) データ型のサブセットにマップされます。

データ ソースでは、データは、データ ソースでサポートされるデータ型に格納されます。 たとえば、 SQL Server データベースのデータは、 SQL Server nvarchar datetime などのサポートされているデータ型である必要があります。 データ ソースからデータを取得するとき、データは、データ ソースの種類に関連付けられているデータ処理拡張機能またはデータ プロバイダーを通過します。 データ処理拡張機能によっては、データは、データ ソースで使用されるデータ型からデータ処理拡張機能でサポートされるデータ型に変換されることがあります。 Reporting Services では、 SQL Server Data Tools (SSDT)と共にインストールされる共通言語ランタイム (CLR) バージョンでサポートされるデータ型を使用します。 データ プロバイダーは、ネイティブ データ型の結果セットの各列を .NET Framework 共通言語ランタイム (CLR) データ型にマップします。

各ステージにおいて、データは、次の一覧で説明するデータ型によって表現されます。

  • データ ソース 接続先のデータ ソースの種類のバージョンでサポートされるデータ型。

    たとえば、 SQL Server データ ソースの一般的なデータ型には、 intdatetime、および varcharが含まれます。 SQL Server 2008 (10.0.x) によって導入されたデータ型のために、datetimedatetimetz、および datetime2 のサポートが追加されています。 詳細については、「 データ型 (Transact-SQL)」を参照してください。

  • データ プロバイダーまたはデータ処理拡張機能 データ ソースに接続するときに選択したデータ処理拡張機能のデータ プロバイダーのバージョンによってサポートされるデータ型。 .NET Framework に基づくデータ プロバイダーは、CLR でサポートされるデータ型を使用します。 .NET Framework データ プロバイダーのデータ型の詳細については、MSDN の「 データ型のマッピング (ADO.NET) 」および「 基本型の操作 」を参照してください。

    たとえば、 .NET Framework でサポートされる一般的なデータ型には、 Int32 および Stringが含まれます。 カレンダー日付および時刻は DateTime 構造体でサポートされています。 .NET Framework 2.0 Service Pack 1 で、タイム ゾーン オフセットを含む日付の DateTimeOffset 構造体のサポートが追加されました。

    Note

    レポート サーバーは、レポート サーバー上にインストールされ構成されたデータ プロバイダーを使用します。 プレビュー モードのレポート作成クライアントは、クライアント マシン上にインストールされ構成されたデータ処理拡張機能を使用します。 レポート クライアントとレポート サーバー環境の両方でレポートをテストする必要があります。

  • レポート プロセッサ データ型は、 Reporting Servicesのインストール時にインストールされた CLR のバージョンに基づきます。

    たとえば、SQL Server 2008 (10.0.x) で追加された新しい日付および時刻型に対してレポート プロセッサが使用するデータ型を次の表に示します。

    SQL データ型 CLR データ型 説明
    Date DateTime 日付のみ
    Time TimeSpan 時刻のみ
    DateTimeTZ DateTimeOffset タイム ゾーン オフセットを含む日付と時刻
    DateTime2 DateTime 小数ミリ秒を含む日付と時刻

SQL Server データベースの型の詳細については、「 データ型 (データベース エンジン) 」および「 日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。

式のデータセット フィールドへの参照を含める方法については、「式で使用されるデータ型 (レポート ビルダーおよび SSRS)」を参照してください。

実行時に存在しないフィールドの検出

レポートを処理したときに、データ ソースに列が存在しないために、データセットの結果セットに指定されたすべての列の値が含まれていないことがあります。 フィールド プロパティの IsMissing を使用して、フィールドの値が実行時に返されたかどうかを検出できます。 詳細については、「データセット フィールド コレクションの参照 (レポート ビルダーおよび SSRS)」を参照してください。

参照

[フィールド] ([データセットのプロパティ] ダイアログ ボックス) (レポート ビルダー)
レポート ビルダーのレポート パーツおよびデータセット
レポート埋め込みデータセットと共有データセット (レポート ビルダーおよび SSRS)