複合フォームスクリプト

 

PrintStreamスクリプトを使用することにより、複数のフォームをより高い自由度で操作することができます。

 

スクリプトウィザードを使用すると、複合フォームスクリプトを自動的に生成することができます。

複合フォームスクリプトを自動的に生成するには、以下の条件を満たしている必要があります。

・フォームが複数作成されている

・フォーム間がリージョン接続されている

・印刷データが設定されている

 

「編集」メニューの「スクリプト操作」「スクリプトの生成」を選択します。

 

 

「複合フォームスクリプトを生成する」を選択します。

以降の操作は通常のスクリプト生成と同様です。

 

スクリプトは、現在の複合フォームに関する設定を元に生成されます。開始ページ、最終ページの設定ON/OFFやグループの指定によって、生成されるスクリプトは変化します。

 

複合フォームに関連するスクリプト

 

OnPageChangeイベントハンドラ

OnPageChangeイベントハンドラは、改ページが発生するごとに呼び出されます。

この中で次のフォームを判定する処理を行い、戻り値として次のフォームを示すページオブジェクトを返すことにより、次のフォームが決定します。

また、OnPageChangeイベントハンドラの引数は、PageChange() 関数、WriteRecords()関数、Write()関数の引数に渡された値を受け取ることができます。これは、改ページが発生した理由を知るためのフラグとして利用できます。

 

IsFirst()関数、IsLast()関数

IsFirst()関数は、フォーム(ページオブジェクト)が先頭フォームとして設定されているかを知ることができます。リージョン接続の先頭のリージョンを持つフォームを指定した場合に真(1)が返り、それ以外のフォームは偽(0)が返ります。

IsLast()関数は、リージョン接続の最後のリージョンを含むフォームの場合に真(1)が返ります。

 

GetParent()関数、GetNextRegion()関数

GetParent()関数は、リージョンの親オブジェクトであるページオブジェクトを取得することができます。

GetNextRegion()関数は、リージョン接続の次にあるリージョンオブジェクトを取得することができます。

 

SaveCursor()関数、RestoreCursor()関数

最終フォームの判定では、印刷データを先読みして判断する場合があります。印刷データのカーソルを先読みしたり、戻したりする場合にはSaveCursor()関数、RestoreCursor()関数を使用します。

 

SetWaitMode()関数、WriteRecords()関数、GetWaitRecord()関数

印刷データの1回のフェッチに対して複数のレコードが出力される場合(キーブレイク時の集計レコードなど)に、出力のタイミングを厳密に知るために使用します。

SetWaitMode()関数を処理の最初に1回だけ呼び出し、「待機モード」に設定します。

WriteRecords()関数を使用して、Write()関数で出力したレコード(待機中のレコード)を一斉に出力します。

OnPageChangeイベントハンドラ内ではGetWaitRecord()関数を使用して待機中のレコードを取得して改ページの判定などを行います。

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る