2008.08.14

ActiveReportで複数の帳票を出力したときのページ番号の設定方法

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

上記のように実装することで、
複数の帳票に連番を振ることが出来ます。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
jnakamura