ActiveReports for .NET 18.0J
ページ/RDLレポートでのサブレポート
ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > ページレポート/RDLレポートのチュートリアル > レイアウト > ページ/RDLレポートでのサブレポート

このチュートリアルでは、サブレポートを使用したページ/RDLレポートの作成方法を示します。このトピックでは、以下のタスクを行います。

メモ: このトピックでは、Reelsデータベースに含まれるEmployee、Sale、SaleDetailsの各テーブルを使用します。Reelsデータベース(..\ActiveReportsNET18\Samples\Data\Reels.mdb)へのアクセス権限が必要です。

チュートリアルを完了すると、次のようなレポートが作成されます。

デザイン時のレイアウト

実行時のレイアウト

サブレポート用のレポートを追加するには

  1. 新しいVisual Studioプロジェクトを作成します。
  2. [プロジェクト]メニューから[新しい項目の追加]を選択します。
  3. [新しい項目の追加]ダイアログが表示されたら、[ActiveReports 18.0J RDLレポート]を選択し、[名前]フィールドでファイル名をSales.rdlxに変更します。
  4. [追加]ボタンをクリックします。各種レポートレイアウトの追加の詳細については、「クイックスタート」を参照してください。

サブレポートをデータソースに接続するには

  1. レポートエクスプローラ]で、[データソース]ノードを右クリックして[データソースの追加]オプションを選択するか、[追加](+)ボタンから[データソース]を選択します。
  2. [レポートデータソース]ダイアログ[全般]ページを選択し、[名前]フィールドに「Reels」と入力します。
  3. このページで、Reelsデータベースへの接続を作成します。データソースへの接続の詳細については、「データソースとの接続」を参照してください。

レポートパラメータをサブレポートに追加するには

  1. レポートエクスプローラ]で[パラメータ]ノードを右クリックして[パラメータの追加]オプションを選択するか、[追加](+)ボタンから[パラメータ]を選択します。
  2. [名前]「EmployeeID」と入力します。
  3. [データ型][Integer]を選択します。
  4. [OK]をクリックしてダイアログを閉じます。

パラメータを含むデータセットをサブレポートに追加するには

データベースクエリにパラメータを使用する場合、データセットの[パラメータ]ページにパラメータを追加して、そのパラメータの値がレポートパラメータコレクションからクエリに確実に渡されるようにする必要があります。

  1. レポートエクスプローラ]で[データソース]ノードを右クリックして[データセットの追加]オプションを選択するか、[追加](+)ボタンから[データセット]を選択します。
  2. [データセット]ダイアログ[全般]ページを選択し、データセットの名前として「EmployeeSales」と入力します。この名前が、[レポートエクスプローラ]で追加したデータソースの子ノードとして表示されます。
  3. [パラメータ]ページで、[名前]「EmployeeID」と入力します。
  4. [値]「=Parameters!EmployeeID.Value」と入力します。
  5. このダイアログの [クエリ] ページで、 [クエリ] フィールドに以下のSQLクエリを入力します。
    SQLクエリ
    コードのコピー
    SELECT * FROM EmployeeSales
    
  6. [クエリ]ボックスの右上にある[データセットの検証アイコンをクリックして、クエリを確認します。

  7. [OK]をクリックしてダイアログを閉じます。追加したデータセットとクエリによって取得されたフィールドが[レポートエクスプローラ]にノードとして表示されます。

データを表示するコントロールをサブレポートに追加するには

  1. ツールボックスからTableデータ領域をドラッグしてレポートのボディにドロップし、[プロパティ]ウィンドウに移動してDataSetNameプロパティを「EmployeeSales」に設定します。
  2. Table内をクリックします。Tableの上辺と左辺に列ハンドルと行ハンドルが表示されます。
  3. 一番右の列の上部にあるハンドルを右クリックして[右に列を挿入]を選択し、列を追加します。
  4. 各列の上部にある列ハンドルを順番にクリックし、[プロパティ]ウィンドウで Widthプロパティを次の表のように設定します。
    Width
    1列目 1.5in
    2列目 1.5in
    3列目 1.2in
    4列目 1.55in
    ヒント: 新しい列を追加する前に既存の列のサイズを変更します。これによって、テーブルが水平方向に伸長してレポートの幅が用紙に収まらなくなることを避けることができます。
  5. テーブルの詳細行の左にあるハンドルを右クリックして[グループの挿入...]を選択し、[Table - グループ]ダイアログを開きます。
  6. [式][=Fields!EmployeeID.Value]を選択します。これにより、各従業員のすべての詳細行がグループ化されます。
  7. [名前]「Employee」に変更し、[OK]をクリックしてダイアログを閉じます。グループ行がテーブルに追加されます。
    メモ: 式を設定するまでテーブルグループの名前は変更できません。
  8. テーブルの詳細行の左にあるハンドルを右クリックして[グループの編集]を選択し、[Table - 詳細行のグループ化]ダイアログを開きます。
  9. [全般]タブの[式][=Fields!SaleID.Value]を選択し、[OK]をクリックしてダイアログを閉じます。これによって、各SaleIDで販売された品目ごとの売上額ではなく、各SaleIDの合計売上額が一覧表示されます。
  10. グループヘッダ行の左にあるハンドルを右クリックして[下に行を挿入]を選択します。この新しい行は、新しいグループごとに上部に繰り返し表示される静的ラベルに使用します。
  11. テーブルの左にあるいずれかのハンドルを右クリックして[テーブルのヘッダ]を選択し、テーブルのヘッダを非表示に切り替えます。
  12. テーブルの左にあるいずれかのハンドルを右クリックして[テーブルのフッタ]を選択し、テーブルのフッタを非表示に切り替えます。
  13. レポートエクスプローラ]で[本文]ノードを選択して[プロパティ]ウィンドウに移動し、Sizeプロパティを「5.75in×1in」に設定します。これで、サブレポートがメインレポート上のサブレポートコントロール内に収まります。

Tableデータ領域にデータフィールドを追加するには

  1. レポートエクスプローラ]で、EmployeeSalesデータセットから以下のフィールドをドラッグしてテーブルの1行目のグループヘッダ行にドロップします。
    データフィールド 列名 プロパティ名
    Name TableColumn1 FontWeight: Bold
  2. [Shift]キーを押したままマウスで1行目のグループヘッダ行の最初の2つのセルを選択し、右クリックして[セルの結合]を選択します。これにより、従業員名がテーブルの2つの列にまたがって表示されます。
  3. 1行目のグループヘッダ行の左にあるハンドルを使用して行を選択し、 BackgroundColor プロパティを LightSteelBlueに設定します。
    ヒント: 最終的にレポートに色をつけない場合でも、レポートの作成中は色をつけた方が便利な場合があります。色をつけると、レポートをプレビューしたときに各コントロールを識別しやすくなり、トラブルシューティングに役立ちます。
  4. テーブルの2行目のグループヘッダ行のセルに以下のテキストを入力します。
    データフィールド 列名 プロパティ名
    売上日 TableColumn1 FontWeight: Bold
    TextAlign: Right
    売上ID TableColumn2 FontWeight: Bold
    TextAlign: Right
    数量 TableColumn3 FontWeight: Bold
    TextAlign: Right
    合計 TableColumn4 FontWeight: Bold
    TextAlign: Right
  5. 2行目のグループヘッダ行の左にあるハンドルを使用して行を選択し、BackgroundColorプロパティを「LightGray」に設定します。
  6. レポートエクスプローラ]で、EmployeeSalesデータセットから以下のフィールドをドラッグしてテーブルの詳細行にドロップします。
    データフィールド 列名 プロパティ名
    SaleDate TableColumn1 Format: Short date
    SaleID TableColumn2
    Quantity TableColumn3
    Total TableColumn4 Format: Currency
  7. テーブルの詳細行で、Quantityデータフィールドのテキストボックスを選択して[プロパティ]ウィンドウに移動し、Valueプロパティを「=Sum(Fields!Quantity.Value)」に変更します。これにより、フィールドの式にSum集計関数が追加され、各SalesIDのQuantityフィールドの集計値が表示されます。
  8. テーブルの詳細行で、Totalデータフィールドのテキストボックスを選択して[プロパティ]ウィンドウに移動し、Valueプロパティを=Sum(Fields!Total.Value)に変更します。これにより、フィールドの式にSum集計関数が追加され、各SalesIDのTotalフィールドの集計値が表示されます。
  9. レポートエクスプローラ]で、EmployeeSalesデータセットから以下のフィールドをドラッグしてテーブルのグループフッタ行にドロップします。
    データフィールド 列名 プロパティ名
    Quantity TableColumn3 Value: =Sum(Fields!Quantity.Value)
    Total TableColumn4 Format: Currency
    Value: =Sum(Fields!Total.Value)
  10. テーブルのグループフッタ行の指定されたセルに以下のテキストを入力します。
    テキスト 列名 プロパティ名
    従業員合計: TableColumn2 FontWeight: Bold
    TextAlign: Right
  11. グループフッタ行の左にあるハンドルを使用して行を選択し、BackgroundColorプロパティを「LightGray」に設定します。
  12. [プレビュー]タブに移動し、Employee IDに「1035」と入力して、[レポートを表示]ボタンをクリックします。デザイン時および実行時のレイアウトは以下のようになります。
    デザイン時のレイアウト 実行時のレイアウト

  13. [ファイル]メニューから[保存]を選択して、このファイルを保存します。このレポートは、メインレポートでサブレポートとして使用します。

メインレポートを作成するには

  1. Visual Studioの[プロジェクト]メニューから[新しい項目の追加]を選択します。
  2. [新しい項目の追加]ダイアログが表示されたら、[ActiveReports 18.0J RDLレポート]を選択し、[名前]フィールドでファイル名を「Employees.rdlx」に変更します。
  3. [追加]ボタンをクリックします。
  4. レポートエクスプローラ]で[本文]ノードを選択し、[プロパティ]ウィンドウに移動し、Sizeプロパティを「6.5in, 3.6in」に設定します。

メインレポートをデータソースに接続するには

  1. レポートエクスプローラ]で[データソース]ノードを右クリックして[データソースの追加]オプションを選択するか、[追加](+)ボタンから[データソース]を選択します。
  2. [レポートデータソース]ダイアログ[全般]ページを選択し、[名前]フィールドに「Reels」と入力します。
  3. このページで、Reelsデータベースへの接続を作成します。データソースへの接続の詳細については、「データソースとの接続」を参照してください。

データセットをメインレポートに追加するには

  1. レポートエクスプローラ]で[データソース]ノードを右クリックして[データセットの追加]オプションを選択するか、[追加](+)ボタンから[データセット]を選択します。
  2. [データセット]ダイアログ[全般]ページを選択し、データセットの名前として「EmployeeInfo」と入力します。この名前が、[レポートエクスプローラ]で追加したデータソースの子ノードとして表示されます。
  3. このダイアログの[クエリ]ページで、[クエリ]フィールドに以下のSQLクエリを入力します。
    SQLクエリ
    コードのコピー
    SELECT * FROM EmployeeInfo
    
  4. [データセットの検証]アイコンをクリックしてクエリを確認し、フィールドリストにフィールドを読み込みます。
  5. [OK]をクリックしてダイアログを閉じます。追加したデータセットとクエリによって取得されたフィールドが[レポートエクスプローラ]にノードとして表示されます。

データを表示するコントロールをメインレポートに追加するには

以下の手順では、コントロールを追加してメインレポートを作成する方法を示します。

メインレポートの上部に静的ラベルを追加するには

Visual StudioのツールボックスからTextBoxコントロールをドラッグしてレポートの本文にドロップし、以下のプロパティを設定します。

プロパティ名 プロパティの値
Font Normal, メイリオ, 14pt, Bold
Location 0in, 0in
Size 6.5in, 0.3in
TextAlign Center
Value 都市/店舗別 従業員レポート

都市ごとにデータを繰り返すListデータ領域を追加するには

  1. ツールボックスからListデータ領域をドラッグしてレポートの本文にドロップします。ドロップしたデータ領域を選択し、[プロパティ]ウィンドウに移動して以下のプロパティを設定します。
    プロパティ名 プロパティの値
    BackgroundColor Silver
    DataSetName EmployeeInfo
    Location

    0in, 0.375in

    Size 6.25in, 2.7in
  2. [プロパティ]ウィンドウの下部で、[プロパティ設定ダイアログ]コマンドを選択します。コマンドへのアクセス方法の詳細については、「[プロパティ]ウィンドウ」を参照してください。
  3. Listダイアログが表示されたら、[詳細行のグループ化]を選択します。
  4. [式][=Fields!City.Value]を選択します。
  5. [OK]をクリックしてダイアログを閉じます。
  6. レポートエクスプローラ]から City フィールドをドラッグしてListデータ領域にドロップし、以下のプロパティを設定します。
    プロパティ名 プロパティの値
    FontSize 12pt
    Location 0in, 0in
    Size 6.5in, 0.25in
    TextAlign Center

都市の店舗ごとにデータを繰り返す2つ目のListデータ領域を入れ子にするには

  1. ツールボックスからListデータ領域をドラッグして1つ目のListデータ領域内にドロップします。ドロップしたデータ領域を選択し、[プロパティ]ウィンドウに移動して以下のプロパティを設定します。
    プロパティ名 プロパティの値
    BackgroundColor Beige
    DataSetName EmployeeInfo
    Location 0.125in, 0.3in
    Size 6.25in, 2.5in
  2. [プロパティ]ウィンドウの下部で、[プロパティ設定ダイアログ]コマンドを選択します。コマンドへのアクセス方法の詳細については、「[プロパティ]ウィンドウ」を参照してください。
  3. Listダイアログが表示されたら、[詳細行のグループ化]を選択します。
  4. [式]「=Fields!StoreName.Value」を選択します。
  5. [OK]をクリックしてダイアログを閉じます。
  6. レポートエクスプローラ]からStoreNameフィールドをドラッグしてリストにドロップし、以下のプロパティを設定します。
    プロパティ名 プロパティの値
    FontWeight Bold
    Location 0in, 0in
    Size 2in, 0.25in

店舗の従業員ごとにデータを繰り返す3つ目のListデータ領域を入れ子にするには

  1. ツールボックスからListデータ領域をドラッグして2つ目のListデータ領域内にドロップします。ドロップしたデータ領域を選択し、[プロパティ]ウィンドウに移動して以下のプロパティを設定します。
    プロパティ名 プロパティの値
    BackgroundColor White
    DataSetName EmployeeInfo
    Location 0in, 0.25in
    Size 6.125in, 1.875in
  2. [プロパティ]ウィンドウの下部で、[プロパティ設定ダイアログ]コマンドを選択します。コマンドへのアクセス方法の詳細については、「[プロパティ]ウィンドウ」を参照してください。
  3. Listダイアログで、[詳細行のグループ化]を選択します。
  4. [式]「=Fields!EmployeeID.Value」を選択します。
  5. [OK]をクリックしてダイアログを閉じます。
  6. レポートエクスプローラ]から以下のフィールドをドラッグして3つ目のListデータ領域内にドロップし、以下のプロパティを設定します。
    データフィールド プロパティ名
    Name Location: 1.125in, 0in
    Size: 2.625in, 0.25in
    Education Location: 1.125in, 0.25in
    Size: 2.625in, 0.25in
    DateOfBirth Location: 5in, 0in
    Size: 0.875in, 0.25in
    Format: Short date
    PhoneNumber Location: 4.875in, 0.25in
    Size: 1.4in, 0.25in
  7. ツールボックスから5個のテキストボックスをドラッグして3つ目のListデータ領域内にドロップし、以下のプロパティを設定します。
    TextBoxのNameプロパティ Valueプロパティ プロパティ名
    tb_名前 名前: Location: 0.125in, 0in
    Size: 0.625in, 0.25in
    FontWeight: Bold
    tb_最終学歴 最終学歴: Location: 0.125in, 0.25in
    Size: 0.875in, 0.25in
    FontWeight: Bold
    tb_生年月日 生年月日: Location: 3.875in, 0in
    Size: 1in, 0.25in
    FontWeight: Bold
    tb_電話 電話: Location: 3.875in, 0.25in
    Size: 1in, 0.25in
    FontWeight: Bold
    tb_売上記録 売上記録 Location: 0.125in, 0.5in
    Size: 1in, 0.25in
    FontWeight: Bold

SubReportコントロールをメインレポートに追加するには

  1. ツールボックスからSubReportコントロールをドラッグして3つ目のListデータ領域内にドロップします。ドロップしたコントロールを選択し、[プロパティ]ウィンドウに移動して以下のプロパティを設定します。
    プロパティ名 プロパティの値
    Location 0.125in, 0.875in
    NoRows 2005年の売上記録はありません。
    ReportName

    Sales(このレポートがSalesレポートと同じディレクトリに保存されていることを確認してください)

    メモ: このレポートを[プレビュー]タブで表示するには、サブレポートのフルパスを指定します。
    Size 5.875in, 0.875in
    Visibility: Hidden True(初期状態ではサブレポートが表示されないようにします)
    Visibility: ToggleItem 前の手順で追加した[売上記録]テキストボックス(テキストの横にトグル画像([+])が配置され、それをクリックするとサブレポートが表示されます)
  2. [プロパティ]ウィンドウの下部で、[プロパティ設定ダイアログ]コマンドを選択します。コマンドへのアクセス方法の詳細については、「[プロパティ]ウィンドウ」を参照してください。
  3. [SubReport]ダイアログの[パラメータ]ページで、[パラメータ名]「EmployeeID」に設定します。この名前はサブレポートに設定したパラメータと正確に一致する必要があります。
  4. [パラメータ値]「=Fields!EmployeeID.Value」に設定します。
    メモ: サブレポートに自動的にメインレポートと同じテーマを適用するオプションを使用できます。このオプションは、[SubReportプロパティ設定]ダイアログの[全般]ページにあります。
  5. [OK]をクリックしてダイアログを閉じます。

レポートを表示するには

または

メモ: [売上記録]の左にある[+]をクリックすると、サブレポートが表示されます。