UltraWinGrid を使用してレポートを印刷するとき、グリッドのデータを 1 枚の用紙に収めるのは、それほど簡単なことではありません。普通これは、行が多すぎて用紙の高さに収まらないためですが、列が多すぎて用紙の幅に収まらない場合もあります。そのため、場合によっては、印刷の際に1つの「論理ページ」と「物理ページ」を区別する必要があります。論理ページは基本的に行の境界で改ページします。列が用紙の幅 3 枚分にわたるレポートを印刷する場合、最初の論理ページは 3 枚の物理ページから成ります。
FitWidthToPages プロパティは、レポートが及ぶ物理的ページを制限します。このプロパティのデフォルト値は 0 です。これはレポートが列のすべてを印刷するために必要となる物理的なページ数をまたぐことを示します。このプロパティがゼロ以外の値に設定されている場合、このコントロールはアウトプットにスケールされるので、レポートの列はページの指定番号に収まります。スケールは比例しており、データが幅に収まるように削減されると、高さも削減され、各ページにより多くの行が小さいサイズで印刷されます。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Private Sub UltraGrid1_InitializePrintPreview(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.CancelablePrintPreviewEventArgs) Handles ultraGrid1.InitializePrintPreview ' Set the zomm level to 100 % in the print preview. e.PrintPreviewSettings.Zoom = 1.0 ' Set the location and size of the print preview dialog. e.PrintPreviewSettings.DialogLeft = SystemInformation.WorkingArea.X e.PrintPreviewSettings.DialogTop = SystemInformation.WorkingArea.Y e.PrintPreviewSettings.DialogWidth = SystemInformation.WorkingArea.Width e.PrintPreviewSettings.DialogHeight = SystemInformation.WorkingArea.Height ' Horizontally fit everything in a signle page. e.DefaultLogicalPageLayoutInfo.FitWidthToPages = 1 ' Set up the header and the footer. e.DefaultLogicalPageLayoutInfo.PageHeader = "Title" e.DefaultLogicalPageLayoutInfo.PageHeaderHeight = 40 e.DefaultLogicalPageLayoutInfo.PageHeaderAppearance.FontData.SizeInPoints = 14 e.DefaultLogicalPageLayoutInfo.PageHeaderAppearance.TextHAlign = HAlign.Center e.DefaultLogicalPageLayoutInfo.PageHeaderBorderStyle = UIElementBorderStyle.Solid ' Use <#> token in the string to designate page numbers. e.DefaultLogicalPageLayoutInfo.PageFooter = "Page <#>." e.DefaultLogicalPageLayoutInfo.PageFooterHeight = 40 e.DefaultLogicalPageLayoutInfo.PageFooterAppearance.TextHAlign = HAlign.Right e.DefaultLogicalPageLayoutInfo.PageFooterAppearance.FontData.Italic = DefaultableBoolean.True e.DefaultLogicalPageLayoutInfo.PageFooterBorderStyle = UIElementBorderStyle.Solid ' Set the ClippingOverride to Yes. e.DefaultLogicalPageLayoutInfo.ClippingOverride = ClippingOverride.Yes ' Set the document name through the PrintDocument which returns a PrintDocument object. e.PrintDocument.DocumentName = "Document Name" End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void ultraGrid1_InitializePrintPreview(object sender, Infragistics.Win.UltraWinGrid.CancelablePrintPreviewEventArgs e) { // Set the zomm level to 100 % in the print preview. e.PrintPreviewSettings.Zoom = 1.0; // Set the location and size of the print preview dialog. e.PrintPreviewSettings.DialogLeft = SystemInformation.WorkingArea.X; e.PrintPreviewSettings.DialogTop = SystemInformation.WorkingArea.Y; e.PrintPreviewSettings.DialogWidth = SystemInformation.WorkingArea.Width; e.PrintPreviewSettings.DialogHeight = SystemInformation.WorkingArea.Height; // Horizontally fit everything in a signle page. e.DefaultLogicalPageLayoutInfo.FitWidthToPages = 1; // Set up the header and the footer. e.DefaultLogicalPageLayoutInfo.PageHeader = "Title"; e.DefaultLogicalPageLayoutInfo.PageHeaderHeight = 40; e.DefaultLogicalPageLayoutInfo.PageHeaderAppearance.FontData.SizeInPoints = 14; e.DefaultLogicalPageLayoutInfo.PageHeaderAppearance.TextHAlign = HAlign.Center; e.DefaultLogicalPageLayoutInfo.PageHeaderBorderStyle = UIElementBorderStyle.Solid; // Use <#> token in the string to designate page numbers. e.DefaultLogicalPageLayoutInfo.PageFooter = "Page <#>."; e.DefaultLogicalPageLayoutInfo.PageFooterHeight= 40; e.DefaultLogicalPageLayoutInfo.PageFooterAppearance.TextHAlign = HAlign.Right; e.DefaultLogicalPageLayoutInfo.PageFooterAppearance.FontData.Italic = DefaultableBoolean.True; e.DefaultLogicalPageLayoutInfo.PageFooterBorderStyle = UIElementBorderStyle.Solid; // Set the ClippingOverride to Yes. e.DefaultLogicalPageLayoutInfo.ClippingOverride = ClippingOverride.Yes; // Set the document name through the PrintDocument which returns a PrintDocument object. e.PrintDocument.DocumentName = "Document Name"; }