次の方法で共有


SQL Server リレーショナル データベースからのレポート データセットの作成 (レポート ビルダ 2.0)

レポート ビルダ 2.0 には、MicrosoftSQL Server リレーショナル データベースからのレポート データの取得をサポートするデータ処理拡張機能が用意されています。レポート データセットのレポート データは、データベース テーブル、ビュー、ストアド プロシージャ、およびテーブル値関数から取得できます。

レポート データセットを作成する前に、データ ソースの種類が MicrosoftSQL Server のデータ ソースを作成する必要があります。MicrosoftSQL Server データ ソースを作成したら、次の方法でデータセットを作成できます。

  • テーブルまたはマトリックスの新規作成ウィザードかグラフの新規作成ウィザードを使用します。レポート内の既存のデータセットを選択するか、これらのウィザードを使用して、別のデータセットとクエリを作成できます。

  • データセットとデータセット クエリをレポート データ ペインから作成します。

レポート データセット クエリの指定

レポート データセットの MicrosoftSQL Server データベースから取得するデータをクエリで指定します。クエリの結果セットの列には、データセットのフィールド コレクションが設定されます。レポートによって処理されるのは、クエリから取得された最初の結果セットだけです。

次のオプションのいずれかを選択して、必要なデータを指定できます。

  • クエリを対話形式で作成します。データベース スキーマ別に編成された、テーブル、ビュー、ストアド プロシージャ、およびその他のデータベース アイテムの階層ビューが表示されるリレーショナル クエリ デザイナを使用します。テーブルまたはビューから列を選択するか、ストアド プロシージャまたはテーブル値関数を指定します。フィルタ条件を指定して、取得するデータの行数を制限します。パラメータ オプションを設定してレポートの実行時にフィルタをカスタマイズします。

  • クエリを入力するか、貼り付けます。テキスト ベースのクエリ デザイナは、Transact-SQL テキストを直接入力する、クエリ テキストを別のソースから貼り付ける、リレーショナル クエリ デザイナでは作成できない複雑なクエリを入力する、クエリ ベースの式を入力する、などの場合に使用します。

  • ファイルまたはレポートから既存のクエリをインポートします。クエリ デザイナの [クエリのインポート] ボタンを使用して、.sql ファイルまたは .rdl ファイルを参照し、クエリをインポートします。

詳細については、「リレーショナル クエリ デザイナのユーザー インターフェイス (レポート ビルダ 2.0)」、「テキストベースのクエリ デザイナのユーザー インターフェイス (レポート ビルダ 2.0)」、および「SQL Server データ ソースからデータを取得する方法 (レポート ビルダ 2.0)」を参照してください。

Text の種類のクエリの使用

テキスト ベースのクエリ デザイナでは、Transact-SQL コマンドを入力して、データセット内のデータを定義できます。たとえば、次の Transact-SQL クエリでは、マーケティング アシスタントであるすべての従業員の名前を選択します。

SELECT
  HumanResources.Employee.BusinessEntityID
  ,HumanResources.Employee.JobTitle
  ,Person.Person.FirstName
  ,Person.Person.LastName
FROM
  Person.Person
  INNER JOIN HumanResources.Employee
    ON Person.Person.BusinessEntityID = HumanResources.Employee.BusinessEntityID
WHERE HumanResources.Employee.JobTitle = 'Marketing Assistant' 

ツール バーの [実行] ボタン (!) をクリックすると、クエリが実行され、結果セットが表示されます。

このクエリをパラメータ化するには、クエリ パラメータを追加します。たとえば、WHERE 句を次の構文に変更します。

WHERE HumanResources.Employee.JobTitle = (@JobTitle)

クエリの実行時に、クエリ パラメータに対応するレポート パラメータが自動的に作成されます。詳細については、このトピックの「クエリ パラメータ」を参照してください。

StoredProcedure の種類のクエリの使用

データセット クエリのストアド プロシージャは、次のいずれかの方法で指定できます。

  • [データセットのプロパティ] ダイアログ ボックスで、[ストアド プロシージャ] オプションを設定します。ドロップダウン リストからストアド プロシージャまたはテーブル値関数を選択します。

  • リレーショナル クエリ デザイナのデータベース ビュー ペインで、ストアド プロシージャまたはテーブル値関数を選択します。

  • テキスト ベースのクエリ デザイナで、ツール バーから [StoredProcedure] を選択します。

ストアド プロシージャまたはテーブル値関数を選択したら、クエリを実行できます。入力パラメータ値の入力を要求されます。クエリの実行時に、入力パラメータに対応するレポート パラメータが自動的に作成されます。詳細については、このトピックの「クエリ パラメータ」を参照してください。

ストアド プロシージャから取得した最初の結果セットだけがサポートされます。ストアド プロシージャから複数の結果セットが返された場合、最初の結果セットだけが使用されます。

既定値が指定されたパラメータがストアド プロシージャに含まれている場合、パラメータの値として DEFAULT キーワードを使用してその値にアクセスできます。クエリ パラメータがレポート パラメータにリンクされている場合は、レポート パラメータの入力ボックスで DEFAULT キーワードを入力または選択できます。

ストアド プロシージャの詳細については、SQL Server オンライン ブックの「ストアド プロシージャ (データベース エンジン)」を参照してください。

クエリ パラメータの使用

パラメータを含むクエリ テキストまたは入力パラメータを含むストアド プロシージャの場合、対応するレポート パラメータが自動的に作成されます。レポートが実行されると、レポート パラメータの値がクエリ パラメータに渡されます。たとえば、次の SQL クエリでは、EmpID という名前のレポート パラメータが作成されます。

SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID 
WHERE EmployeeID = @EmpID

レポート パラメータとクエリ パラメータの関係は、[パラメータ] ([データセットのプロパティ] ダイアログ ボックス) (レポート ビルダ 2.0) を使用して管理できます。パラメータが使用されているクエリで、レポート パラメータにリンクされているクエリには、DECLARE ステートメントは必要ありません。

クエリ パラメータからレポート パラメータが自動的に作成されますが、レポート パラメータはレポート データ ペインで別に管理します。

注意注意

クエリ パラメータの名前を変更したり、クエリ パラメータを削除した場合、そのクエリ パラメータに対応するレポート パラメータは、自動的には変更または削除されません。レポート パラメータの削除やレポート パラメータの順序変更は、レポート データ ペイン ツール バーのボタンを使用して行うことはできません。詳細については、「レポートへのパラメータの追加 (レポート ビルダ 2.0)」を参照してください。

データセットの変更

データセットを作成した後、データセットとそのフィールド コレクションをレポート データ ペインに表示できます。[データセットのプロパティ] ダイアログ ボックスを使用して、次のタスクのいくつか実行することもできます。

  • 計算フィールドを追加してフィールド コレクションを編集します。計算フィールドには、式を使った値が割り当てられ、その値はクエリの実行後に評価されます。フィールドのデータ型は、.NET Framework の共通言語ランタイム (CLR) データ型のサブセットにマップされます。

  • Timeout、CaseSensitivity、Collation などのデータセット プロパティを指定します。

  • クエリを変更して、ユーザーまたはレポート作成者が実行時にレポートのデータをカスタマイズできるようにするパラメータを追加します。

また、データセットでのデータの並べ替えまたはフィルタ選択の方法を変更するには、次のトピックを参照してください。