- PR -

ActiveReport DrawTextしたテキストの位置がずれる

1
投稿者投稿内容
YOTUSBA
会議室デビュー日: 2008/02/07
投稿数: 3
投稿日時: 2008-02-07 21:43
VB2005+ActiveReports for .NET 2.0J SP1 Proで開発を行っています。

2種類のレポート(rpt1 rpt2)をAddRangeで合成した後、DrawTextでページ数と総ページ
数を書き込みプレビューするようにしているのですが、rpt1とrpt2でDrawTextで表示させ
ているテキストにずれが生じています。

rpt1------------------------------------------------------------------------
                         ページ数/総ページ数
rpt2------------------------------------------------------------------------
                            ページ数/総ページ数
※右にずれている

この現象ですが、デバッグモードではずれが生じずrpt1と同じ位置に表示されている
のですが、EXEから起動すると上図のように右にずれて表示されます。
何か原因がお分かりの方がいらっしゃいましたら、どうぞよろしくお願い致します。
以下、ソースです。

コード:

    Private Const mcDEFMARGIN As Single = 0.4
    Private Const mcINFOTEXT_LEFT As Single = 6.094
    Private Const mcINFOTEXT_WIDTH As Single = 1.313
    Private Const mcINFOTEXT_HEIGHT As Single = 0.25
    Private Const mcINFOTEXT_FONT As String = "MS ゴシック"
    Private Const mcINFOTEXT_FONTSIZE As Single = 8.25
 ・
 ・
 ・

            'rpt1データセット
            rpt1.DataSource = Datatable1
            rpt1.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.A4
            rpt1.PageSettings.Orientation = DataDynamics.ActiveReports.Document.PageOrientation.Portrait
            rpt1.PageSettings.Margins.Top = mcDEFMARGIN
            rpt1.PageSettings.Margins.Bottom = mcDEFMARGIN
            rpt1.PageSettings.Margins.Left = mcDEFMARGIN
            rpt1.PageSettings.Margins.Right = mcDEFMARGIN
            rpt1.Run(False)

            'rpt2データセット
            rpt2.DataSource = Datatable2
            rpt2.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.A4
            rpt2.PageSettings.Orientation = DataDynamics.ActiveReports.Document.PageOrientation.Portrait
            rpt2.PageSettings.Margins.Top = mcDEFMARGIN
            rpt2.PageSettings.Margins.Bottom = mcDEFMARGIN
            rpt2.PageSettings.Margins.Left = mcDEFMARGIN
            rpt2.PageSettings.Margins.Right = mcDEFMARGIN
            rpt2.Run(False)

            '2種類のレポートを合成
            rpt1.Document.Pages.AddRange(rpt2.Document.Pages)

            'ページ番号を表示
            For i As Integer = 0 To rpt1.Document.Pages.Count - 1
                strPage = String.Empty
                strPage = "ページ:" & (i + 1).ToString & "/" & rpt1.Document.Pages.Count
                rpt1.Document.Pages(i).Font = New Font(mcINFOTEXT_FONT, mcINFOTEXT_FONTSIZE)
                rpt1.Document.Pages(i).ForeColor = Color.Black
                rpt1.Document.Pages(i).DrawText(strPageFooter, _
                                                        mcINFOTEXT_LEFT + mcDEFMARGIN, _
                                                        mcDEFMARGIN, _
                                                        mcINFOTEXT_WIDTH, _
                                                        mcINFOTEXT_HEIGHT)
            Next

            'プレビュー
            Using frmViewer As New ACTIVERPT_PREVIEW
                frmViewer.Text = Me.Text
                frmViewer.SetReport(CType(rpt1, DataDynamics.ActiveReports.ActiveReport))
                frmViewer.ShowDialog()
            End Using

1

スキルアップ/キャリアアップ(JOB@IT)