セクションレポートでは、複数のレポートを実行したり、ページコレクションの全体または特定の部分をマージして1つのレポートとして表示することができます。マージされたレポートを含むドキュメントは、RDFファイルへの保存やエクスポートも可能です。
次の手順は、Windowsフォーム上にViewerコントロールを配置し、Visual Studioのプロジェクトに2つのセクションレポート(コード)のテンプレート(rptOneおよびrptTwo)を追加したことを前提にしています。それぞれの詳細については、「クイックスタート」および「Viewerの使用」を参照してください。
他のレポートからページを追加する
次のサンプルコードでは、ページコレクションを反復処理し、レポート全体を他のレポートに追加します。PagesCollectionのAddメソッドでvalue引数を使用し、レポートドキュメントのページを参照することができます。
Visual Basic
Visual Basicコード(Form_Loadイベント内に貼り付けます) |
コードのコピー
|
---|---|
Dim i As Integer Dim rpt As New rptOne() rpt.Run() Dim rpt2 As New rptTwo() rpt2.Run() For i = 0 To rpt2.Document.Pages.Count - 1 rpt.Document.Pages.Add(rpt2.Document.Pages(i)) Next Viewer1.Document = rpt.Document |
C#
C#コード(Form_Loadイベント内に貼り付けます) |
コードのコピー
|
---|---|
int i; rptOne rpt1 = new rptOne(); rpt1.Run(); rptTwo rpt2 = new rptTwo(); rpt2.Run(); for(i = 0; i < rpt2.Document.Pages.Count; i++) { rpt1.Document.Pages.Add(rpt2.Document.Pages[i]); } viewer1.Document = rpt1.Document; |
指定したページの範囲をレポートに追加する
レポートの指定したページを他のレポートに追加するには、AddRangeメソッドを使用します。このメソッドの2つのオーバーロードで引数を設定できます。オーバーロードでページオブジェクトの配列を設定し、レポートの指定したページの範囲を別のレポートに追加できます。
Visual Basic
Visual Basicコード(Form_Loadイベント内に貼り付けます) |
コードのコピー
|
---|---|
Dim rpt1 As New rptOne() rpt1.Run() Dim rpt2 As New rptTwo() rpt2.Run() rpt1.Document.Pages.AddRange(New GrapeCity.ActiveReports.Document.Section.Page() {rpt2.Document.Pages(1), rpt2.Document.Pages(2)}) Viewer1.Document = rpt1.Document |
C#
C#コード(Form_Loadイベント内に貼り付けます) |
コードのコピー
|
---|---|
rptOne rpt1 = new rptOne(); rpt1.Run(); rptTwo rpt2 = new rptTwo(); rpt2.Run(); rpt1.Document.Pages.AddRange(new GrapeCity.ActiveReports.Document.Section.Page[] {rpt2.Document.Pages[0],rpt2.Document.Pages[1]} ); viewer1.Document = rpt1.Document; |
レポートにページを挿入する
レポートにページを挿入するには、2つの引数を指定したInsertメソッドを使用できます。indexで対象レポートに挿入するページの位置を指定し、valueで挿入するレポートのページを参照します。
Visual Basic
Visual Basicコード(Form_Loadイベント内に貼り付けます) |
コードのコピー
|
---|---|
Dim rpt1 As New rptOne() rpt1.Run() Dim rpt2 As New rptTwo() rpt2.Run() rpt1.Document.Pages.Insert(0, rpt2.Document.Pages(0)) Viewer1.Document = rpt1.Document |
C#
C#コード(Form_Loadイベント内に貼り付けます) |
コードのコピー
|
---|---|
rptOne rpt1 = new rptOne(); rpt1.Run(); rptTwo rpt2 = new rptTwo(); rpt2.Run(); rpt1.Document.Pages.Insert(0, rpt2.Document.Pages[0]); viewer1.Document = rpt1.Document; |
レポートの指定した位置に新規ページを挿入する
レポートの指定した位置に新規ページを挿入するには、InsertNewメソッドを使用できます。indexで指定したページの後で新規ページを挿入します。
Visual Basic
Visual Basicコード(Form_Loadイベント内に貼り付けます) |
コードのコピー
|
---|---|
Dim rpt1 As New rptOne() rpt1.Run() rpt1.Document.Pages.InsertNew(0) rpt1.Document.Pages(0).Width = rpt1.Document.Pages(1).Width |
C#
C#コード(Form_Loadイベント内に貼り付けます) |
コードのコピー
|
---|---|
rptOne rpt1 = new rptOne(); rpt1.Run(); rpt1.Document.Pages.InsertNew(0); rpt1.Document.Pages(0).Width = rpt1.Document.Pages(1).Width; viewer1.Document = rpt1.Document; |