レポート データセットについて
データセットは、データ接続から使用するデータを指定します。データセットは、埋め込みデータ ソースまたはレポート サーバーの共有データ ソースへの参照としてレポートに保存されているデータ接続に基づいています。データセットには、一連のフィールドを指定するクエリが含まれています。これらのフィールドをデザイン画面にドラッグすると、レポートの実行時に実際のデータを評価する式を作成できます。
データセットには次の 2 種類があります。
共有データセット : 共有データセットはレポート サーバーで定義されます。サーバーを参照して、共有データセットを作成したり、レポートに追加する事前定義済みのデータセットを選択したりすることができます。詳細については、「共有データセットの管理」を参照してください。
埋め込みデータセット : 埋め込みデータセットは、そのデータセットが埋め込まれたレポートでのみ定義され、そのレポートでのみ使用されます。
データセットには、パラメーター、フィルター、文字の区別 (大文字と小文字、ひらがなとカタカナ、全角と半角、アクセント、照合順序の情報を含む) などを指定するデータ オプションも含まれています。
コンポーネントとは、レポートに含めることができる再利用可能なレポート アイテムです。コンポーネントに依存データセットが含まれている場合、そのデータセットはコンポーネントに埋め込まれます。コンポーネントをレポートに追加すると、そのコンポーネントが依存するすべてのデータセットも追加されます。これらのデータセットをレポートに追加した後は、レポート サーバーから追加したデータセットまたは手動で作成したデータセットに違いはありません。詳細については、「レポート デザイナーでのレポート パーツのパブリッシュ」を参照してください。
レポート データセットのデータについて
レポート データセットは、次の種類のデータで構成されています。
データベース コマンド、ストアド プロシージャ、またはユーザー定義関数を実行することによって生成されるリレーショナル データベースの結果セット。1 つのクエリから複数の結果セットが取得された場合は、最初の結果セットだけが処理され、他の結果セットはすべて無視されます。たとえば、テキストベースのクエリ デザイナーで次のクエリを実行すると、Production.Product の結果セットだけが結果ペインに表示されます。
SELECT ProductID FROM Production.Product; GO SELECT ContactID FROM Person.Person;
XML for Analysis (XMLA) プロトコルを使用する多次元データ ソースのフラットな行セット。データ プロバイダーによっては、結果セットには表示されなくてもレポートで使用可能な追加のセルやディメンションのプロパティがデータ ソースから提供されることがあります。
XML 要素、属性、および子要素を含む XML データ ソースのフラットな結果セット。
登録および構成されている .NET Framework データ プロバイダーの結果セット。
定義済みエンティティ、エンティティ関係、およびフィールドを持つ特定のデータ ソースに指定されたレポート モデルのデータ。詳細については、「データ ソースとしてのレポート モデルの使用」を参照してください。
実行時にレポートを処理した場合、クエリで返される実際の結果セットに 0 個以上の行があることがあります。また、クエリで定義された列がデータ ソースに見つからない可能性もあります。データ ソースの Null 値は、.NET Framework 値の System.DBNull.Value にマップされます。
データ プロパティの設定
レポート データセットを定義する際は、クエリのデータ プロパティを設定することも、データ プロバイダーにより設定された既定値を使用することもできます。データ型は次のいずれかの方法で変更できます。
フィールドを別のデータ型に明示的に変換するようにデータセット クエリを書き直します。
データセットのフィールドを編集し、カスタム書式を指定します。
データベース フィールドに基づいて新しいカスタム フィールドを作成し、カスタム書式を指定します。
各種言語データをサポートするデータ ソースの場合、並べ替え順、各種言語文字プロパティ、および大文字と小文字を同等に処理するかどうかに影響を与えるデータセットのプロパティを調整しなければならないことがあります。これらのプロパティには、大文字小文字、かな、文字幅、アクセント、照合順序が含まれます。詳細については、「データベースとデータベース エンジン アプリケーションの国際化に関する注意点」および「照合順序の使用」を参照してください。これらのプロパティの設定方法の詳細については、「[オプション] ([データセットのプロパティ] ダイアログ ボックス)」を参照してください。
共有データセットをレポートに追加するときに、共有データセット定義の一部として定義されているクエリやフィルターを変更することはできません。フィルターをさらに追加したり、レポートのインスタンス用のデータセット オプションを上書きすることはできます。詳細については、msdn.microsoft.com のレポート ビルダー 3.0 に関するドキュメントの「埋め込みデータセットと共有データセット (レポート ビルダー 3.0)」を参照してください。
データセット フィールド コレクションのデータ型について
データ ソースでは、データは、データ ソースでサポートされるデータ型に格納されます。たとえば、SQL Server データベースのデータは、nvarchar や datetime などのサポートされている SQL Server データ型である必要があります。データ ソースからデータを取得するとき、データは、データ ソースの種類に関連付けられているデータ処理拡張機能またはデータ プロバイダーを通過します。データ処理拡張機能によっては、データは、データ ソースで使用されるデータ型からデータ処理拡張機能でサポートされるデータ型に変換されることがあります。Reporting Services では、Business Intelligence Development Studio と共にインストールされる共通言語ランタイム (CLR) でサポートされるデータ型が使用されます。データ プロバイダーは、ネイティブ データ型の結果セットの各列を .NET Framework 共通言語ランタイム (CLR) データ型にマップします。
各ステージにおいて、データは、次の一覧で説明するデータ型によって表現されます。
データ ソース 接続先のデータ ソースの種類のバージョンでサポートされるデータ型。
たとえば、SQL Server データ ソースの一般的なデータ型には、int、datetime、および varchar が含まれます。SQL Server 2008 で追加されたデータ型により、date、time、datetimetz、および datetime2 のサポートが追加されました。詳細については、「データ型 (Transact-SQL)」を参照してください。
データ プロバイダーまたはデータ処理拡張機能 データ ソースに接続するときに選択したデータ処理拡張機能のデータ プロバイダーのバージョンによってサポートされるデータ型。.NET Framework に基づくデータ プロバイダーは、CLR でサポートされるデータ型を使用します。.NET Framework データ プロバイダーのデータ型の詳細については、MSDN の「データ型のマッピング (ADO.NET)」および「基本型の操作」を参照してください。
たとえば、.NET Framework でサポートされる一般的なデータ型には、Int32 および String が含まれます。カレンダー日付および時刻は DateTime 構造体でサポートされています。.NET Framework 2.0 Service Pack 1 で、タイム ゾーン オフセットを含む日付の DateTimeOffset 構造体のサポートが追加されました。
注意
レポート サーバーは、レポート サーバー上にインストールされ構成されたデータ プロバイダーを使用します。プレビュー モードのレポート作成クライアントは、クライアント マシン上にインストールされ構成されたデータ処理拡張機能を使用します。レポート クライアントとレポート サーバー環境の両方でレポートをテストする必要があります。
レポート プロセッサ データ型は、Reporting Services のインストール時にインストールされた CLR のバージョンに基づきます。
たとえば、SQL Server 2008 で追加された新しい日付および時刻型に対してレポート プロセッサが使用するデータ型を次の表に示します。
SQL データ型
CLR データ型
説明
Date
DateTime
日付のみ
Time
TimeSpan
時刻のみ
DateTimeTZ
DateTimeOffset
タイム ゾーン オフセットを含む日付と時刻
DateTime2
DateTime
小数ミリ秒を含む日付と時刻
SQL Server データベースの型の詳細については、「データ型 (データベース エンジン)」および「日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。
式のデータセット フィールドへの参照を含める方法については、「式におけるデータ型の使用 (Reporting Services)」を参照してください。
複数のデータセットの使用
レポートには通常、複数のデータセットがあります。次の一覧では、レポートにおけるデータセットの使用方法について説明します。
独立したデータ領域を使用して、各データセットのデータを表示します。詳細については、「データ領域の処理」を参照してください。
複数のデータ領域をデータセットにリンクすることで、同じデータを複数の形式で表示することができます。詳細については、「同じデータセットへの複数のデータ領域のリンク」を参照してください。
データセットを使用して、使用可能な値のドロップダウン リスト、またはレポート パラメーターの既定値を表示します。詳細については、「レポートへのパラメータの追加」を参照してください。
ドリルスルー レポートまたはサブレポートのパラメーターを使用して、複数のデータセットの関連データをリンクできます。たとえば、売上レポートに全店舗の要約データを表示し、ドリルスルー リンクを使用して、指定の店舗の個々の売上高を取得するデータセット クエリが含まれたレポートに、パラメーターとして店舗 ID を指定することができます。詳細については、「ドリルスルー レポートの追加」および「サブレポートの追加」を参照してください。
1 つのデータ領域で複数のデータセットの詳細データを表示することはできません。ただし、データ領域内で複数のデータセットの集計関数値または組み込み関数値を表示することは可能です。詳細については、「式での組み込みのレポート関数と集計関数の使用 (Reporting Services)」を参照してください。複数のデータセットの詳細データを 1 つのデータ領域に組み合わせるには、データを 1 つのデータセットとして取得するようにクエリを書き直す必要があります。
データセットの既存のクエリのインポート
データセットを作成する場合、新しいクエリを作成するか、ファイルまたは別のレポートから既存のクエリをインポートすることができます。サポートされているファイルの種類は .sql と .rdl だけです。多次元式 (MDX) クエリまたはデータ マイニング予測 (DMX) クエリは、結果セットをフラットな行セットとして取得しなければならないため、Reporting Services クエリ デザイナーでのみ生成できます。
別のレポートからクエリをインポートする場合は、レポートのデータセットの一覧からインポートするクエリを選択できます。
実行時に行データが取得されない場合のメッセージの表示
レポート処理中、データセットのクエリを実行しても、結果のセットに行が含まれていないことがあります。表示レポートでは、空のデータセットにリンクされているデータ領域は空のデータ領域として表示されます。表示レポートの空のデータ領域部分に表示するテキストを指定できます。また、すべてのデータセットのクエリを実行しても実行時にデータが生成されない場合にサブレポートに表示するメッセージも指定できます。詳細については、「データ領域にデータがないことを示すメッセージを設定する方法」を参照してください。
存在しないフィールドの検出
レポートを処理したときに、データ ソースに列が存在しないために、データセットの結果セットに指定されたすべての列の値が含まれていないことがあります。フィールド プロパティの IsMissing を使用して、フィールドの値が実行時に返されたかどうかを検出できます。詳細については、「式におけるデータセット フィールド コレクションの参照の使用 (Reporting Services)」を参照してください。
非表示のデータセットの表示
多次元データ ソースに対するパラメーター化クエリを作成すると、パラメーターに有効な値を提供するためのデータセットが Reporting Services によって自動的に作成されます。既定では、これらのデータセットはレポート データ ペインに表示されません。詳細については、「非表示のデータセットを表示する方法」を参照してください。
関連項目
参照
概念
Reporting Services でサポートされるデータ ソース
データ処理拡張機能と .NET Framework データ プロバイダー