'宣言 Public Event InitializeLogicalPrintPage As InitializeLogicalPrintPageEventHandler
public event InitializeLogicalPrintPageEventHandler InitializeLogicalPrintPage
イベント ハンドラが、このイベントに関連するデータを含む、CancelableLogicalPrintPageEventArgs 型の引数を受け取りました。次の CancelableLogicalPrintPageEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
Cancel System.ComponentModel.CancelEventArgsから継承されます。 | |
Collate | PrintDocumentの、Collateの値を返します。 |
Copies | PrintDocumentのCopiesの値を返します。 |
DocumentName | PrintDocumentの名前を返します。 |
Landscape | PrintDocumentのLandscapeの値を返します。 |
LogicalPageLayoutInfo | 現在の論理ページのレイアウト情報を返します。 |
LogicalPageNumber | 現在の論理ページ番号を返します。 |
MarginBottom | PrintDocument の下マージンの値を返します(読み取り専用)。InitializePrintPreview および InitializePrint イベントでマージンを設定できます。 |
MarginLeft | PrintDocument の左マージンの値を返します(読み取り専用)。InitializePrintPreview および InitializePrint イベントでマージンを設定できます。 |
MarginRight | PrintDocument の右マージンの値を返します(読み取り専用)。InitializePrintPreview および InitializePrint イベントでマージンを設定できます。 |
MarginTop | PrintDocument の上マージンの値を返します(読み取り専用)。InitializePrintPreview および InitializePrint イベントでマージンを設定できます。 |
PaperHeight | PrintDocumentの用紙サイズの高さを返します。 |
PaperWidth | PrintDocumentの用紙サイズの幅を返します。 |
PrintColors | PrintDocumentのSupportsColorの値を返します。 |
PrinterName | PrintDocumentのPrinterNameの値を返します。 |
PrintRange | PrintDocumentのPrintRangeの値を返します。 |
UltraWinGrid を使用してレポートを印刷するとき、グリッドのデータを 1 枚の用紙に収めるのは、それほど簡単なことではありません。普通これは、行が多すぎて用紙の高さに収まらないためですが、列が多すぎて用紙の幅に収まらない場合もあります。そのため、場合によっては、印刷の際に1つの「論理ページ」と「物理ページ」を区別する必要があります。論理ページは基本的に行の境界で改ページします。列が用紙の幅 3 枚分にわたるレポートを印刷する場合、最初の論理ページは 3 枚の物理ページから成ります。
印刷またはプレビューの準備として新しい論理ページの書式が計算されるたびに、InitializeLogicalPrintPage イベントが発生します。このイベントを使用して、論理ページに変更(ページヘッダーやフッターのテキストの変更など)を加えることができます。印刷ジョブの設定(ヘッダーやフッターのテキストなど)にアクセスするには、 LogicalPageLayoutInfo パラメーターによってこのイベントに渡される LogicalPageLayoutInfo オブジェクトのプロパティを使用します。
このイベントでよく行われるのは、レポートの各ページのページ番号を増やすことです。ページ番号は、このイベントに渡される LogicalPageNumber パラメーターを使用して簡単に増やすことができます。PageHeader または PageFooter にトークン <#> を含む文字列を設定すれば、ページ番号の自動ナンバリングが可能になります。このトークンはページ番号に置き換わります。
レポートの物理ページに基づいて印刷ジョブを変更する場合は、DrawFilter インターフェイスを使用する必要があります。
LogicalPageLayoutInfo オブジェクトは、BeforePrint イベント、IntitializePrint イベントおよび IntitializePrintPreview イベント中に限ってアクセス可能です。BeforePrint イベントで印刷ジョブに変更を加えると、InitializeLogicalPrintPage イベントがもう一度発生することに注意してください。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Imports System.Diagnostics Private Sub UltraGrid1_InitializeLogicalPrintPage(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.CancelableLogicalPrintPageEventArgs) Handles ultraGrid1.InitializeLogicalPrintPage Debug.WriteLine("e.Collate = " & e.Collate.ToString()) Debug.WriteLine("e.Copies = " & e.Copies.ToString()) Debug.WriteLine("e.DocumentName = " & e.DocumentName) Debug.WriteLine("e.Landscape = " & e.Landscape) Debug.WriteLine("e.LogicalPageNumber = " & e.LogicalPageNumber) Debug.WriteLine("e.DocumentName = " & e.MarginBottom) Debug.WriteLine("e.DocumentName = " & e.MarginLeft) Debug.WriteLine("e.DocumentName = " & e.MarginRight) Debug.WriteLine("e.DocumentName = " & e.MarginTop) Debug.WriteLine("e.DocumentName = " & e.PaperHeight) Debug.WriteLine("e.DocumentName = " & e.PaperWidth) Debug.WriteLine("e.DocumentName = " & e.PrintColors) Debug.WriteLine("e.DocumentName = " & e.PrinterName) Debug.WriteLine("e.DocumentName = " & e.PrintRange) Debug.WriteLine("e.DocumentName = " & e.DocumentName) ' You can also setup the footer and header on a per page basis. e.LogicalPageLayoutInfo.PageHeader = "Page Title" e.LogicalPageLayoutInfo.PageHeaderAppearance.ForeColor = Color.DarkGray e.LogicalPageLayoutInfo.PageFooter = "Page Footer Text" e.LogicalPageLayoutInfo.PageFooterAppearance.TextHAlign = HAlign.Center ' Following code cancels the event to prevent prevewing or printing more than 10 pages. If e.LogicalPageNumber > 10 Then e.Cancel = True End If End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void ultraGrid1_InitializeLogicalPrintPage(object sender, Infragistics.Win.UltraWinGrid.CancelableLogicalPrintPageEventArgs e) { Debug.WriteLine( "e.Collate = " + e.Collate.ToString( ) ); Debug.WriteLine( "e.Copies = " + e.Copies.ToString( ) ); Debug.WriteLine( "e.DocumentName = " + e.DocumentName ); Debug.WriteLine( "e.Landscape = " + e.Landscape ); Debug.WriteLine( "e.LogicalPageNumber = " + e.LogicalPageNumber ); Debug.WriteLine( "e.DocumentName = " + e.MarginBottom ); Debug.WriteLine( "e.DocumentName = " + e.MarginLeft ); Debug.WriteLine( "e.DocumentName = " + e.MarginRight ); Debug.WriteLine( "e.DocumentName = " + e.MarginTop ); Debug.WriteLine( "e.DocumentName = " + e.PaperHeight ); Debug.WriteLine( "e.DocumentName = " + e.PaperWidth ); Debug.WriteLine( "e.DocumentName = " + e.PrintColors ); Debug.WriteLine( "e.DocumentName = " + e.PrinterName ); Debug.WriteLine( "e.DocumentName = " + e.PrintRange ); Debug.WriteLine( "e.DocumentName = " + e.DocumentName ); // You can also setup the footer and header on a per page basis. e.LogicalPageLayoutInfo.PageHeader = "Page Title"; e.LogicalPageLayoutInfo.PageHeaderAppearance.ForeColor = Color.DarkGray; e.LogicalPageLayoutInfo.PageFooter = "Page Footer Text"; e.LogicalPageLayoutInfo.PageFooterAppearance.TextHAlign = HAlign.Center; // Following code cancels the event to prevent prevewing or printing more than 10 pages. if ( e.LogicalPageNumber > 10 ) e.Cancel = true; }