レポートの用紙サイズや余白を、コード上で動的に設定する方法は?
対象製品
ActiveReports for .NET 6.0J Professional
詳細
デザイナ画面上の[レポートの設定]ダイアログの「ページ設定」や「プリンタ設定」で設定される項目は、ActiveReportオブジェクトのPageSettingsクラス以下のプロパティにより、参照・設定が可能です。
たとえば、レポートの余白(マージン)は、PageSettings.Margins以下のプロパティで設定されています。レポートの実行前に、こちらのプロパティをコード上で指定することで、余白を動的に変更することが可能です。
以下のサンプルコードでは、用紙サイズをA3横に設定し、上下の余白を各1cmずつに、左右の余白を各1.5cmずつに設定しています。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
たとえば、レポートの余白(マージン)は、PageSettings.Margins以下のプロパティで設定されています。レポートの実行前に、こちらのプロパティをコード上で指定することで、余白を動的に変更することが可能です。
以下のサンプルコードでは、用紙サイズをA3横に設定し、上下の余白を各1cmずつに、左右の余白を各1.5cmずつに設定しています。
◆サンプルコード(VB.NET)
Dim rpt As New ActiveReport1()
' 用紙サイズをA3横に設定します。
rpt.PageSettings.PaperKind = _
System.Drawing.Printing.PaperKind.A3
rpt.PageSettings.Orientation = _
DataDynamics.ActiveReports.Document.PageOrientation.Landscape
' 上下左右の余白を設定します。
rpt.PageSettings.Margins.Top = rpt.CmToInch(1)
rpt.PageSettings.Margins.Bottom = rpt.CmToInch(1)
rpt.PageSettings.Margins.Left = rpt.CmToInch(1.5)
rpt.PageSettings.Margins.Right = rpt.CmToInch(1.5)
' レポートを生成し、Viewer上に表示します。
rpt.Run()
Viewer1.Document = rpt.Document
' 用紙サイズをA3横に設定します。
rpt.PageSettings.PaperKind = _
System.Drawing.Printing.PaperKind.A3
rpt.PageSettings.Orientation = _
DataDynamics.ActiveReports.Document.PageOrientation.Landscape
' 上下左右の余白を設定します。
rpt.PageSettings.Margins.Top = rpt.CmToInch(1)
rpt.PageSettings.Margins.Bottom = rpt.CmToInch(1)
rpt.PageSettings.Margins.Left = rpt.CmToInch(1.5)
rpt.PageSettings.Margins.Right = rpt.CmToInch(1.5)
' レポートを生成し、Viewer上に表示します。
rpt.Run()
Viewer1.Document = rpt.Document
◆サンプルコード(C#)
ActiveReport1 rpt = new ActiveReport1();
// 用紙サイズをA3横に設定します。
rpt.PageSettings.PaperKind
= System.Drawing.Printing.PaperKind.A3;
rpt.PageSettings.Orientation
= DataDynamics.ActiveReports.Document.PageOrientation.Landscape;
// 上下左右の余白を設定します。
rpt.PageSettings.Margins.Top
= DataDynamics.ActiveReports.ActiveReport.CmToInch(1.0f);
rpt.PageSettings.Margins.Bottom
= DataDynamics.ActiveReports.ActiveReport.CmToInch(1.0f);
rpt.PageSettings.Margins.Left
= DataDynamics.ActiveReports.ActiveReport.CmToInch(1.5f);
rpt.PageSettings.Margins.Right
= DataDynamics.ActiveReports.ActiveReport.CmToInch(1.5f);
// レポートを生成し、Viewer上に表示します。
rpt.Run();
this.viewer1.Document = rpt.Document;
// 用紙サイズをA3横に設定します。
rpt.PageSettings.PaperKind
= System.Drawing.Printing.PaperKind.A3;
rpt.PageSettings.Orientation
= DataDynamics.ActiveReports.Document.PageOrientation.Landscape;
// 上下左右の余白を設定します。
rpt.PageSettings.Margins.Top
= DataDynamics.ActiveReports.ActiveReport.CmToInch(1.0f);
rpt.PageSettings.Margins.Bottom
= DataDynamics.ActiveReports.ActiveReport.CmToInch(1.0f);
rpt.PageSettings.Margins.Left
= DataDynamics.ActiveReports.ActiveReport.CmToInch(1.5f);
rpt.PageSettings.Margins.Right
= DataDynamics.ActiveReports.ActiveReport.CmToInch(1.5f);
// レポートを生成し、Viewer上に表示します。
rpt.Run();
this.viewer1.Document = rpt.Document;
関連情報
- コード上から「サーバーのプロパティ」に追加されている用紙サイズを使用する(ActiveReports上で使用できる用紙サイズを取得する)方法は?
- 実行環境で「プリンタは用紙サイズ ** をサポートしません。PageSettingsでPaperKind.Customを使用するか、プリンタがサポートしている用紙サイズを指定してください。」というエラーが発生します。
- Flashビューワから印刷する時、プリンタのデフォルトの用紙サイズで印刷される
キーワード
HowTo デザイン・レイアウト
この文書は、以前は次のFAQ IDで公開されていました : 11914