セクションレポートでは、複数のレポートを実行したり、ページコレクションの全体または特定の部分をマージして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; |
|