2014年6月15日日曜日

【VB.NET】ReportViewer サブレポートを表示する。

ReportViewerでサブレポートを表示します。

使用例:売上データを表示するレポートに従業員データをサブレポートで表示します。

1.プロジェクトにデータセットを追加して売上データと従業員データを取得するデータアダプターを追加します。

2.従業員データを表示するレポートを作成します。
3.売上データを表示するレポートを作成します。
4.売上データレポートにサブレポートを追加します。
  ReportNameに従業員データレポートを設定します。

5.フォームにReportViewerを配置し売上データレポートを表示します。
6.フォームにB indingSourceを追加しDataMemberに従業員データアダプターを設定します。
  (DataMember設定後にDataAdapterが追加されます)

7.サブレポートで使用するデータソースを指定するSubReportProcessingイベントハンドラを追加します。
Imports Microsoft.Reporting.WinForms

Public Class Form1

    'サブレポートで使用するデータソースにデータを指定する。
    Public Sub SubReportProcessingEventHandler(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)
        e.DataSources.Add(New ReportDataSource("DsEmployee", Me.EmployeeBindingSource))
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: このコード行はデータを 'DataSet1.EmployeeDataTable' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
        Me.EmployeeDataTableAdapter.Fill(Me.DataSet1.EmployeeDataTable)
        'TODO: このコード行はデータを 'DataSet1.SalesDataTable' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
        Me.SalesDataTableAdapter.Fill(Me.DataSet1.SalesDataTable)

        'SubReportProcessingEventHandlerを追加する。
        AddHandler Me.ReportViewer1.LocalReport.SubreportProcessing, AddressOf SubReportProcessingEventHandler

        Me.ReportViewer1.RefreshReport()
    End Sub
End Class

8.実行します。