ActiveReportで複数の帳票を同時に出力する場合は、
CrystalReportsとは違い、すごく簡単で、以下のようにすれば出来ます。
[メインとなるレポート].Document.Pages.AddRange([別のレポート].Document.Pages)
ただ、上記のようにして複数の帳票を印刷した場合、
ページ番号が各帳票ごとにつけられてしまいます。
例:一つ目の帳票の一枚目:1
一つ目の帳票の二枚目:2
二つ目の帳票の一枚目:1
上記のように複数の帳票を同時に出力しても、
ページ番号はそれぞれの帳票で異なってしまいます。
では、どのようにして複数の帳票に対してページ番号を連番でつけていくかというと、
下記のように実装することで可能です。
Dim rpt1 As New NewActiveReport1()
Dim rpt2 As New NewActiveReport2()
・
・
・
'メインレポートにサブレポートを追加
a.Document.Pages.AddRange(b.Document.Pages)
'フォントの設定
Dim font As New Drawing.Font("MS ゴシック", 10)
'出力位置の設定
Dim left As Single = rpt.PageSettings.Margins.Left()
Dim top As Single = rpt.PageSettings.Margins.Top + 0.19F
Dim width As Single = 7.38F
Dim height As Single = 0.19F
Dim drawRect As New Drawing.RectangleF(x, y, width, height)
'ページ番号の設定
For i As Integer = 0 To rpt.Document.Pages.Count - 1
With rpt.Document.Pages(i)
.Font = f
.TextAlignment = TextAlignment.Right
.VerticalTextAlignment = DataDynamics.ActiveReports.VerticalTextAlignment.Middle
.DrawText((i + 1).ToString() & "頁", drawRect)
End With
Next
上記のように実装すると下記のようにページ番号が連番になります。
例:一つ目の帳票の一枚目:1
一つ目の帳票の二枚目:2
二つ目の帳票の一枚目:3
二つ目の帳票の一枚目:4
上記のように実装することで、
複数の帳票に連番を振ることが出来ます。