- PR -

ActiveReportsの余白設定について

投稿者投稿内容
chiroru
ベテラン
会議室デビュー日: 2008/10/02
投稿数: 59
投稿日時: 2009-03-19 14:49
言語:Microsoft Visual Studio 2008
データベース:SQL Server 2005
ツール:ActiveReports for .NET 3.0J

レポートの用紙サイズや余白を、コード上で動的に設定してます。
しかし、印刷しても期待どおりの余白が設定されません。
余白は上余白1cm、左余白2cmと設定しているのですが、
何故か印刷すると上余白1cm、左余白3cmと左余白だけが1cm多くなってしまいます。

原因がわからず困っています。どなたかご教授お願いします。

コード:
<印刷ボタン押下処理>
Public Class frmXXXX
    Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
        Try
            Dim okButtonIsPushed As Boolean
            Dim rpt As DataDynamics.ActiveReports.ActiveReport3
            rpt = New rptXXXX
            Dim RptInfo As New clsReportInfo
            RptInfo.SetMargin(strReportID, rpt)
            rpt.Run()
            Dim DiaInfo As New clsDialogInfo
            okButtonIsPushed = DiaInfo.PrintDialog(strReportID, rpt, True, False, True)
        Catch ex As Exception
            AppErrorHandler(ex)
        End Try
End Class
<用紙サイズや余白設定>
Public Class clsReportInfo
    Public Sub SetMargin(ByVal strReportID As String, ByRef rpt As ActiveReport3)
        Try
            '用紙サイズの設定
            rpt.PageSettings.PaperKind = Printing.PaperKind.A4	'A4
            rpt.PageSettings.Orientation = DataDynamics.ActiveReports.Document.PageOrientation.Portrait	'縦
            '余白の設定
            rpt.PageSettings.Margins.Top = ActiveReport3.CmToInch(1.0)     '上余白
            rpt.PageSettings.Margins.Bottom = ActiveReport3.CmToInch(1.0)  '下余白
            rpt.PageSettings.Margins.Left = ActiveReport3.CmToInch(2.0)    '左余白
            rpt.PageSettings.Margins.Right = ActiveReport3.CmToInch(2.0)   '右余白
        Catch ex As Exception
            AppErrorHandler(ex)
        End Try
    End Sub
End Class

かずい
常連さん
会議室デビュー日: 2008/09/30
投稿数: 28
お住まい・勤務地: 北海道札幌市
投稿日時: 2009-03-19 14:59
かずいといいます。

レポートレイアウトの方で、ページフッタとか設定していないですか?
もし、ページフッタ(レポートフッタもあれば同様かな)の高さ0に設定したら
どうですか?
(たしかプロパティで出力対象なければ、出力しない設定があった気がするけど
忘れてしまいました。)
chiroru
ベテラン
会議室デビュー日: 2008/10/02
投稿数: 59
投稿日時: 2009-03-19 15:20
ページフッタはラベルやテキスト等があるため高さ0にはできません。
問題は左余白です。
レポートの設定で上下左右のマージンを0.99に設定しています。
でも、プログラムでここは書き変わる予定だから関係ないですよね?
かずい
常連さん
会議室デビュー日: 2008/09/30
投稿数: 28
お住まい・勤務地: 北海道札幌市
投稿日時: 2009-03-19 15:24
chiroruさん

すいません。
左余白ですね。下の余白だと思いこんでしまっていました。

左余白が3センチになるっていうのは、印刷された紙を測ったものでしょうか?

chiroru
ベテラン
会議室デビュー日: 2008/10/02
投稿数: 59
投稿日時: 2009-03-19 15:26
引用:

左余白が3センチになるっていうのは、印刷された紙を測ったものでしょうか?


はいそうです。
かずい
常連さん
会議室デビュー日: 2008/09/30
投稿数: 28
お住まい・勤務地: 北海道札幌市
投稿日時: 2009-03-19 15:34
chiroruさん

とすると、たしかActiveReportsって、「とじしろ」っていうプロパティを持っていたと
思うのでこれの値を確認してみてください。
この「とじしろ」が指定されていると、強制的に左の印刷開始位置を取ってしまうので、これをレポート上で0にするか、プログラムで一緒に変更するかしないとだめだと思います。
BR6
常連さん
会議室デビュー日: 2009/03/04
投稿数: 33
お住まい・勤務地: 東京
投稿日時: 2009-03-19 15:52
既に回答が付いているようですが、以下に同じような事象がありました。
とじしろの設定で解決されたようです。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=25095
chiroru
ベテラン
会議室デビュー日: 2008/10/02
投稿数: 59
投稿日時: 2009-03-19 15:52
「とじしろ」を0に設定することで解決しました。
ありがとうございました。

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