レッスン 4: 子レポートのデータ接続とデータ テーブルを定義する
親レポートを設計した後は、子レポートのデータ接続とデータ テーブルを作成します。 このチュートリアルでは、データ接続先として AdventureWorks2008 データベースを使用しますが、 AdventureWorks2012 データベースに接続することもできます。
DataSet を追加してデータ接続と DataTable を定義するには (子レポート用)
[Web サイト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[DataSet] をクリックし、[追加] をクリックします。 メッセージが表示されたら、[はい] をクリックして App_Code フォルダーに項目を追加します。
これにより、DataSet2.xsd という新しい XSD ファイルがプロジェクトに追加され、データセット デザイナーが開きます。
[ツールボックス] ウィンドウから TableAdapter コントロールをデザイン画面にドラッグします。 これにより、TableAdapter の構成ウィザードが起動します。
[データ接続の選択] ページで、[新しい接続] をクリックします。
[接続の追加] ダイアログ ボックスで、次の手順を実行します。
[サーバー名] ボックスに、AdventureWorks2008 データベースが存在するサーバーを入力します。
既定の SQL Server Express インスタンスは (local)\sqlexpress です。
[サーバー ログオン] セクションで、データへのアクセスを提供するオプションを選択します。 既定は [Windows 認証を使用する] です。
[データベース名の選択または入力] ボックスで、[AdventureWorks2008] をクリックします。
[OK] をクリックし、[次へ] をクリックします。
手順 5. (b) で [SQL Server 認証を使用する] を選択した場合は、機密データを文字列に含めるか、またはその情報をアプリケーション コードで設定するかどうかを指定するオプションを選択します。
[接続文字列をアプリケーション構成ファイルに保存する] ページで、接続文字列の名前を入力するか、既定値の AdventureWorks2008ConnectionString をそのまま使用します。 [次へ] をクリックします。
[コマンドの種類を選択します] ページで、[SQL ステートメントを使用する] を選択し、[次へ] をクリックします。
[SQL ステートメントの入力] ページで、AdventureWorks2008 データベースからデータを取得するための次の Transact-SQL クエリを入力し、[次へ] をクリックします。
SELECT PurchaseOrderID, PurchaseOrderDetailID, OrderQty, ProductID, ReceivedQty, RejectedQty, StockedQty FROM Purchasing.PurchaseOrderDetail
また、[クエリ ビルダー] をクリックしてクエリを作成し、[クエリの実行] をクリックしてクエリを確認することもできます。 クエリを実行したときに期待したデータが返されない場合は、以前のバージョンの AdventureWorks を使用している可能性があります。 AdventureWorks の AdventureWorks2008 バージョンをインストールする方法の詳細については、「チュートリアル: AdventureWorks データベースのインストール」を参照してください。
[生成するメソッドの選択] ページで、[更新を直接データベースに送信するためのメソッドを作成する (GenerateDBDirectMethods)] チェック ボックスをオフにし、[完了] をクリックします。
これで、レポートのデータ ソースとしての ADO.NET DataTable の構成が完了しました。 Visual Studio の [データセット デザイナー] ページに、追加した DataTable にクエリで指定した列が表示されます。 DataSet2 には、クエリに基づいて PurhcaseOrderDetail テーブルのデータが含まれています。
このファイルを保存します。
データをプレビューするには、[データ] メニューの [データのプレビュー] をクリックし、[プレビュー] をクリックします。
次の作業
これで、子レポートのデータ接続とデータ テーブルを作成できました。 次は、レポート ウィザードを使用して子レポートを設計します。 「レッスン 5: レポート ウィザードを使用して子レポートを設計する」を参照してください。