フレームではパーティションの出力方向として「縦」または「横」を指定することができます。「縦」の場合は集計表形式と同様に上から下にパーティションが出力されます。(ここまでのフリーフレーム形式の説明は「縦」の場合です。)
「横」の場合、パーティションが出力された順に左から右に向かって出力されます。
横方向に出力したい場合は、フレームの作成時に出力方向として「横」を指定します。
フレームの出力方向が「横」の場合は、パーティション項目群を出力すると次の出力位置が横方向に移動します。
パーティション出力で指定される改行数は無視され、必ず直前のパーティションに接して出力されます。
フレーム枠を超えて項目群を出力するとMEFP_RC_ENDFRAMELINK(6B)のエラーになります。リンクフレームがある場合は、MEFP_RC_ENDFRAME(6C)のエラーになります。フレームの形式に縦方向が指定されている場合は縦幅を超えたときに、横方向が指定されている場合は横幅を超えたときにエラーとなります。
例
~ボディに定義された項目のレコードデータ(月度、氏名、社員番号)に値を設定~ ps_write_partition(psfile, “BODY”, PS_WP_POSISION, 1, pRecord); /* BODYの出力 */ ps_write_partition(psfile, “CH1”, PS_WP_POSISION, 1, pRecord); /* CH1の出力 */ DEを1ヶ月分の出力するループ ~DEに定義されたレコードデータ(出勤時間、退勤時間、勤務時間)に値を設定~ ps_write_partition(psfile, “DE”, PS_WP_AFTERFEED, 1, pRecord); /* DEの出力 */ ~フレームを変更する必要がある場合~ ps_control_printer(psfile, PS_CP_BLOCK, 0, NULL); /* 改ブロック */ ps_write_partition(psfile, “CH1”, PS_WP_POSISION, 1, pRecord); /* CH1の出力 */ ~CF1のレコードデータ(合計時間)に値を設定~ ps_write_partition(psfile, “CF1”, PS_WP_POSISION, 1, pRecord); /* CF1の出力 */
* ボディの出力 ~ボディに定義された項目のレコードデータ(月度、氏名、社員番号)に値を設定~ MOVE "BODY" TO PRT-GROUP. MOVE "PW" TO PRT-MODE. MOVE "P001" TO PRT-CONTROL. WRITE SAMP. * 制御頭書きの出力 MOVE "CH1" TO PRT-GROUP. MOVE "PW" TO PRT-MODE. MOVE "P001" TO PRT-CONTROL. WRITE SAMP. 明細の出力を1ヶ月分繰り返す。 * 明細の出力 ~DEに定義されたレコードデータ(出勤時間、退勤時間、勤務時間)に値を設定~ MOVE "DE" TO PRT-GROUP. MOVE "PW" TO PRT-MODE. MOVE "A001" TO PRT-CONTROL. WRITE SAMP. ~フレームを変更する必要がある場合~ MOVE "CT" TO PRT-MODE. MOVE "BLCK" TO PRT-CONTROL. WRITE SAMP. MOVE "CH1" TO PRT-GROUP. MOVE "PW" TO PRT-MODE. MOVE "P001" TO PRT-CONTROL. WRITE SAMP. * 制御脚書きの出力 MOVE "CF1" TO PRT-GROUP. MOVE "PW" TO PRT-MODE. MOVE "P001" TO PRT-CONTROL. WRITE SAMP.