バージョン

InitializeLogicalPrintPage イベント

論理印刷ページが印刷またはプレビュー用にフォーマットされるときに発生します。
シンタックス
'宣言
 
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;

}
参照