第3章 開発と運用
3.1 印刷機能
3.1.4 出力処理の種類
3.1.4.3 パーティション出力
パーティション出力は、パーティション形式の定義体を使用してパーティション項目群を印刷する出力方法です。
パーティション出力は、印刷する項目群の位置を、定義体作成時には指定しないでプログラム内から動的に指定して印刷する方法 です。直前に印刷した項目の位置を基準にして、項目群の印刷前または印刷後に任意の行数だけ改行を行うことにより、動的に印刷 位置を指定します。
なお、パーティション項目群には、浮動パーティション項目群と固定パーティション項目群の2つがあり、動的に印刷位置を指定でき るのは、浮動パーティション項目群だけです。固定パーティション項目群は定義体作成時に項目群の位置を指定し、常に帳票の左上 端を基点とした位置に項目群が印刷されます。
固定パーティション項目群の印刷で、改行数の指定が有効になるのは行送り前印刷のときだけです。
パーティション出力には、次に示す印刷方法があります。
行送り前印刷 行送り後印刷 絶対行位置印刷
特殊項目群の出力では、プリンタヘッドの位置は更新されません。また、行送り前印刷、行送り後印刷、絶対行位置印刷はできませ ん。
帳票定義体では、パーティションの情報として縦幅の指定があります。
パーティションの縦幅と行ピッチの関係は以下のようになります。
図3.5 パーティションの縦幅と行ピッチの関係
出力開始位置
固定パーティションの場合 : ページ内縦位置
浮動パーティションの場合 : 今現在のプリンタヘッド位置 パーティション最終位置
出力開始位置+パーティション縦幅 次回出力開始位置
出力開始位置+(パーティション縦幅-行ピッチ)
なお、パーティション縦幅が行ピッチより小さいパーティション項目群を出力した場合、次回の出力位置はパーティション出力した開始 位置のままとなります。
3.1.4.3.1 行送り前印刷
パーティション項目群を印刷したあとに、任意の行数だけ改行する印刷方法です。
行数は出力時に指定します。行数に0を指定すると改行は全く行われません。行数に0を指定して、パーティション出力で浮動パー ティション項目群を続けて印刷すると、項目群の先頭行が、前回印刷した項目群の最終行と重なって印字されます。行数には0以外を 指定するか、定義体作成時にパーティション項目群の最終行または先頭行を空白行にするなどして、データが重なって印字しないよ うにします。
図に、行送り前印刷の動作例を示します。
図3.6 行送り前印刷の動作例
上記のパーティション項目群を使って行送り前印刷を続けて2回行う。
印刷後の改行数には4を指定する。
3.1.4.3.2 行送り後印刷
任意の行数だけ改行したあとに、パーティション項目群を印刷する方法です。
行数は出力時に指定します。行数に0を指定すると改行はまったく行われません。行数に0を指定して、パーティション出力で浮動 パーティション項目群を続けて印刷すると、項目群の先頭行が、前回印刷した項目群の最終行と重なって印字されます。行数には0以 外を指定するか、定義体作成時にパーティション項目群の最終行または先頭行を空白行にするなどして、データが重なって印字しな いようにします。
行送り後印刷では、浮動パーティション項目群だけが有効となります。固定パーティション項目群を印刷すると、利用者プログラムで 指定した改行数は無視され、常に定義体で指定した位置に印刷されます。
図に、行送り後印刷の動作例を示します。
図3.7 行送り後印刷の動作例
上記のパーティション項目群を使って行送り後印刷を続けて2回行う。
印刷前の改行数には4を指定する。
3.1.4.3.3 絶対行位置印刷
ページ内の指定した位置にパーティション項目群を印刷する方法です。
印刷位置はページ先頭を1としたページ内行位置を出力時に指定します。絶対行位置に0を指定するとMEFD_RC_PARA(26)のエ ラーとなります。
絶対行位置印刷では、浮動パーティション項目群だけが有効となります。固定パーティション項目群を印刷すると、利用者プログラム で指定した絶対行位置は無視され、常に定義体で指定した位置に印刷されます。
図に、絶対行位置印刷の動作例を示します。
図3.8 絶対行位置印刷の動作例
上記のパーティション項目群を絶対行位置印刷を使って印刷する。
絶対行位置に7を指定する。