印刷データを1件読み込むごとに呼び出されます。OnFetchイベントハンドラは、キーブレイクや集計などの処理の前に呼び出されるので、OnFetchイベントハンドラ内で読み出したデータを印刷に適した別の形態に加工することができます。加工されたデータは、カーソルから読み出したものとして処理が行われます。
例1
var qfm = GetQfm(); var cursor = qfm.GetCursor(); function OnFetch() { var data = cursor.GetValue("金額"); // データ取出し cursor.SetValue("金額", data.kanji()); // 漢数字に変換 }
この例では、読み込んだ印刷データの、数字データが格納されている「金額」項目を、kanji()関数により漢数字に変換します。その結果、印刷データとなるデータベースなどに「5千」のように、もともと漢数字が格納されているかのように動作します。
例2
var qfm = GetQfm(); var cursor = qfm.GetCursor(); var page = qfm.GetPage(); function OnFetch() { // データ取出し var data = Number(cursor.GetValue("金額")); if (data < 0) { page.GetField("txt金額").back.color = "#FF0000"; } else { page.GetField("txt金額").back.color = "#FFFFFF"; } }
この例では、読み込んだ印刷データの、「金額」項目がマイナスの場合、「txt金額」フィールドを赤で表示します。
(注) OnFetchイベントハンドラ内で、cursor.MoveNext()を実行する場合は十分注意してください。MoveNext()の実行により再帰的にOnFetchイベントハンドラが呼び出されます。
(注) OnFetchイベントハンドラ内では、できるだけ印刷データの加工や印刷データに対応したレコード内のフィールド処理だけを行うようにしてください。ページ上に置かれているフィールドや、リージョンの操作を行うと、実際に印刷される契機(改ページの契機)とデータ読み込みのタイミングの差により、意図した結果を得ることが難しくなります。