ページの先頭行へ戻る
MeFt V11.0 ユーザーズガイド
FUJITSU Software

5.9.1 フレームの基本制御

  ヘッダ、フッタ、ボディに定義された項目を出力する場合、パーティション項目群名としてヘッダの場合は'HEAD'、フッタの場合は'FOOT'、ボディの場合は'BODY'を指定してパーティション出力を行います。なお、これらのパーティションを出力してもフレームに定義されたパーティションは出力されません。

[利用者プログラムからの出力例]
ps_write_partition(psfile, “HEAD”, PS_WP_POSISION,  1, pRecord);  /* ヘッダの出力 */
ps_write_partition(psfile, “BODY”, PS_WP_AFTERFEED, 1, pRecord);  /* ボディの出力 */
ps_write_partition(psfile, “FOOT”, PS_WP_AFTERFEED, 1, pRecord);  /* フッタの出力 */
* ヘッダの出力
  MOVE "HEAD"   TO PRT-GROUP.
  MOVE "PW"     TO PRT-MODE.
  MOVE "P001"   TO PRT-CONTROL.
  WRITE SAMP.
* ボディの出力
  MOVE "BODY"   TO PRT-GROUP.
  MOVE "PW"     TO PRT-MODE.
  MOVE "A001"   TO PRT-CONTROL.
  WRITE SAMP.
* フッタの出力
  MOVE "FOOT"   TO PRT-GROUP.
  MOVE "PW"     TO PRT-MODE.
  MOVE "A001"   TO PRT-CONTROL.
  WRITE SAMP.

フレームに定義されたフレームパーティションを出力する場合、パーティション項目群名を指定して出力を行います。

支給項目のフレームを例にすると以下のようになります。

[利用者プログラムからの出力例]
ps_write_partition(psfile, “CH1”, PS_WP_POSISION,  1, pRecord);  /* CH1の出力 */
~  レコード域の支給項目名に"基本給"を設定し、支給金額に金額を設定  ~
ps_write_partition(psfile, “DE”, PS_WP_AFTERFEED, 1, pRecord);   /* DEの出力   */
~  レコード域の支給項目名に"時間外手当"を設定し、支給金額に金額を設定  ~
ps_write_partition(psfile, “DE”, PS_WP_AFTERFEED, 1, pRecord);   /* DEの出力   */
~  レコード域の支給項目名に"その他"を設定し、支給金額に金額を設定  ~
ps_write_partition(psfile, “DE”, PS_WP_AFTERFEED, 1, pRecord);   /* DEの出力   */
~  レコード域の支給合計に合計金額を設定  ~
ps_write_partition(psfile, “CF1”, PS_WP_AFTERFEED, 1, pRecord);  /* CF1の出力 */
* 制御頭書きの出力
    MOVE "CH1"    TO PRT-GROUP.
    MOVE "PW"     TO PRT-MODE.
    MOVE "P001"   TO PRT-CONTROL.
    WRITE SAMP.
* 明細の出力
  ~  レコード域の支給項目名に"基本給"を設定し、支給金額に金額を設定  ~
    MOVE "DE"     TO PRT-GROUP.
    MOVE "PW"     TO PRT-MODE.
    MOVE "A001"   TO PRT-CONTROL.
    WRITE SAMP.
  ~  レコード域の支給項目名に"時間外手当"を設定し、支給金額に金額を設定  ~
    MOVE "DE"     TO PRT-GROUP.
    MOVE "PW"     TO PRT-MODE.
    MOVE "A001"   TO PRT-CONTROL.
    WRITE SAMP.
  ~  レコード域の支給項目名に"その他"を設定し、支給金額に金額を設定  ~
    MOVE "DE"     TO PRT-GROUP.
    MOVE "PW"     TO PRT-MODE.
    MOVE "A001"   TO PRT-CONTROL.
    WRITE SAMP.
* 制御脚書きの出力
    MOVE "CF1"    TO PRT-GROUP.
    MOVE "PW"     TO PRT-MODE.
    MOVE "A001"   TO PRT-CONTROL.
    WRITE SAMP.
  • 指定されたパーティション項目群名により自動的にフレームが選択され、フレームの位置に出力されます。
    浮動パーティションの場合、当該フレームの最初のパーティション出力の場合はフレーム先頭に、また2回目以降の出力の場合は、前回まで出力していた位置から継続して出力されます。固定パーティションはフレーム内の定義された位置に出力されます。
    上記の出力例では"CH1"(浮動パーティション)を指定すると、支給項目のフレームの先頭にCH1が出力され、"DE"(浮動パーティション)はCH1に続けて出力されます。
    例における「控除項目」「就業項目」のフレームも同様の出力となります。

  • フレームパーティションの出力は、フレーム単位で出力してください。複数のフレームのパーティションを交互に出力した場合、当該フレームの最初の出力とみなされ、必ずフレームの先頭に出力されてしまいます。
    たとえば、支給項目のフレームの"CH1"を出力後, 控除項目のフレームの"CH2"を出力し、次に支給項目のフレームの“DE”を出力した場合、"DE"は支給項目のフレームの先頭にCH1と重なって出力されます。
    従って正しい出力結果を得るためには1個のフレーム内の対象となる処理をすべて完了した後、他のフレームに対する処理を行う必要があります。

  • ヘッダ、フッタ、ボディの出力とフレームパーティションの出力はどちらを先に行っても構いません。

  • フリーフレーム形式の場合、現在のプリンタヘッドの位置より上に固定パーティションを出力した場合でも改ページは行われません。重ね書きされます。改ページが必要な場合は利用者プログラムで明に改ページ制御を行う必要があります。

  • フレームサイズを超えて項目群を出力するとMEFP_RC_ENDFRAMELINK(6B)のエラーになります。

  • 多目的プリンタ機能を使用した印刷でフレーム形式の印刷が指定された場合は、MEFP_RC_BLOCK(7B)のエラーになります。

  • COBOLのFORMAT句付き印刷ファイルで行レコード出力を行うとMEFP_RC_BLOCKLW(6A)のエラーになります。行レコード出力は行わないでください。

  • COBOLのFORMAT句付き印刷ファイルで改ページや改フレームを行った場合、MEFP_RC_BLOCKLW(6A)のエラーになります。COBOLの表示ファイルで出力するか、フリーフレーム形式以外の定義体に変更してください。