テキスト・レポート変数

テキスト・レポート・エンジンは、レポートの作成中、特定のイベントのセットを認識します。各イベントはエンジンの中の変数によって示されます。

ライブラリー内の変数に代入を行なうときにユーザーが使用しているのと同じドット構文を使用することで、汎用ハンドラーから、これらのどの変数にもカスタム関数を割り当てることができます。例えば、printPageTotals() という名前の関数がある場合、onPageTrailerListener 変数にそれを割り当て、ページ・トレーラーが印刷されるときに各ページ上で関数が実行されるようにします。 次のサンプル・コードはその代入を示します。
myReport.onPageTrailerListener = printPageTotals;
これらの各 TextReportListener 変数は、Delegate 型です。これは、シグニチャーが一致する (パラメーターが同じ数値および型である) いずれの関数も、これらの変数の 1 つへ代入できるということを意味します。それぞれの変数は、TextReportEvent 型 (TextReportEvent は別の EGL ExternalType パーツ) の単一の引数を取ります。 ほとんどの場合、このイベント・タイプの詳細に焦点を当てる必要はありません。次の例のように、関数を宣言すると同時に変数を宣言します。
function printPageTotals(myEvent TextReportEvent in)
   ...
end
関数内で myEvent を参照する必要はありません。 例外レコード (例外処理を参照) 同様に、TextReportEvent パラメーターは、レポートの状態と、関数が呼び出された理由に関する情報を提供することができます。 アクセスできる TextReportEvent 変数内には、4 つのフィールドがあります。 最初のフィールドは、関数が呼び出された理由を示す値を保持し、以下に示すその他の 3 つのフィールドは、最初の値と比較される定数値を含みます。
state
関数の呼び出しを起動するイベントに関する情報を含む整数。この変数は、以下のフィールドの 1 つに設定されます (ほとんどの場合、STATE_UNSPECIFIED に設定されます)。
STATE_UNSPECIFIED
1 である整数定数。状態フィールドが STATE_UNSPECIFIED フィールドと同じ 場合は、関数が呼び出された理由に関する情報は提供されません。
STATE_LASTROW
2 である整数定数。状態フィールドが STATE_LASTROW フィールドと同じ場合は、最終行が印刷されると関数が呼び出されます。
STATE_FIRSTROW
3 である整数定数。状態フィールドが STATE_FIRSTROW フィールドと同じ 場合は、先頭行の印刷が始まるところで関数が呼び出されます。
次のコードは、レポートの印刷を開始したばかりの特殊な場合における、state フィールドの使用例です。
function beforeGroup (myEvent TextReportEvent in)
   if ((currentReportRecord.customerName != previousReportRecord.customerName)||
         (myEvent.state == myEvent.STATE_FIRSTROW))
      printCustomerName(currentReportRecord);
   end
end
以下の変数のいずれにも関数を割り当てることができます。
onFirstPageHeaderListener
先頭ページのヘッダーを印刷する関数を指します。先頭ページに固有のヘッダーがない場合は何も割り当てないでください。
onPageHeaderListener
ページ・ヘッダーを印刷する関数を指します。先頭ページのヘッダーが指定されていない場合、これがすべてのページに印刷されます。それ以外の場合は、2 ページ目から印刷が開始されます。
onEveryRowListener
行のデータを印刷する関数を指します。
onLastRowListener
最終行の後のテキストを印刷する関数を指します。これは、最終ページの下部のトレーラー以外で、レポートに最後に印刷されます。
onPageTrailerListener
トレーラー・テキストを印刷する関数を指します。
onBeforeGroupListener
onEveryRowListener 関数の直前に常時呼び出されます。これは、データのグループを印刷する前にテキストを印刷するメカニズムを提供します。
onAfterGroupListener
onBeforeGroupListener 関数の直前に呼び出されます (データの最初の行以外)。 これは、データのグループを印刷した後にテキストを印刷するメカニズムを提供します。これも onLastRowListener 関数の直前に呼び出されます。

フィードバック