5.5.2 行データの帳票印刷

APから書式印刷をする場合,行データを出力するために,次に示す関数を発行します。関数の機能と発行順序を示します。

図5-14 関数の機能と発行順序

[図データ]

<この項の構成>
(1) jstqlopn関数
(2) jstqlpag関数
(3) jstqlctp関数
(4) jstqldat関数
(5) jstqllpt関数
(6) jstqlcls関数

(1) jstqlopn関数

環境変数を取り込んで,行データの編集を開始します。なお,環境変数については,「6.3 書式オーバレイ印刷時の環境変数(AIX,HP-UX,Solaris)」を参照してください。

[図データ]

(a) 形式の説明
  1. JSTQL_COMアドレス
    APで確保したユーザインタフェース領域の先頭アドレスを指定します。ユーザインタフェース領域の形式を次に示します。

    表5-13 ユーザインタフェース領域の形式

    属性および名称位置長さ内容備考
    (バイト)
    unsigned char lcomid04テーブル
    ID:「XMP3」
    jstqlopn関数を呼び出す前に設定
    します
    unsigned char *lcomsvnm44印刷サービス名称のアドレス
    unsigned char lcomdevnm86予備jstqlopn関数を呼び出す前に必
    ず,NULL(0x00)でクリア
    します1
    unsigned char lcomrsv1142予備
    unsigned char lcompgcnm168予備
    unsigned char *lcompgedr244予備
    long lcomrc284リターンコード関数呼び出し後に参照します2
    long lcomerr324エラー詳細コード3
    unsigned char lcomsync361予備jstqlopn関数を呼び出す前に
    必ずNULL(0x00)でクリア
    します1
    unsigned char lcomrsv3371予備
    unsigned char lcomrsv4381予備
    unsigned char lcomrsv5391予備
    unsigned char lcomrsv64012予備
    unsigned char *lcomxppdr524予備
    unsigned char lcomperr564ページ制御エラー情報ページ制御のエラー発生時に参照します2
    unsigned char *lcomxperr604予備jstqlopn関数を呼び出す前に必ずNULL(0x00)でクリア
    します1
    unsigned char lcomwrk64192XMAP3の作業領域jstqlopn関数を呼び出す前に必ずNULL(0x00)でクリア
    します1
注※1
NULL(0x00)でクリアしたあとは,使用しないでください。
注※2
各関数を呼び出す前に,必ずNULL(0x00)でクリアしてください。
注※3
エラー詳細コードについては,「9.4.2 書式オーバレイ印刷時のリターンコード(AIX,HP-UX,Solaris)」を参照してください。

ユーザインタフェース領域には,次に示す項目に情報を設定し,そのほかの項目はNULL(0x00)でクリアします。

(b) リターン情報

関数のリターン値を次に示します。

(2) jstqlpag関数

ページ制御情報を作成して,ページバッファに格納します。

[図データ]

(a) 形式の説明
  1. JSTQL_COMアドレス
    jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。
  2. 予備
    必ず,NULLを指定します。
  3. 予備
    必ず,NULLを指定します。
  4. 書式名格納領域のアドレス
    書式イメージファイルの拡張子「.fmp」なしの名称が格納されている領域のアドレスを必ず指定します。書式名は,8バイト以内の文字列で,NULLまたはスペースを終端とします。書式名を9バイト以上で指定した場合は,先頭から8バイト分を書式名と見なし,8バイト未満で指定した場合は,先頭からNULLまたはスペースの直前までの文字列を書式名と見なします。
    書式名の指定がNULLポインタのとき,文字列がNULLまたは空白だけのときは,環境変数「XMAP3_FMP」で指定した名称が仮定されます。
    また,書式オーバレイなしの行データだけの印刷はできません。ただし,何も定義していない空の書式を指定すると,行データだけの印刷ができます。
(b) リターン情報

関数のリターン値を次に示します。

(c) 注意事項

jstqldat関数での行データをjstqllpt関数で出力していない場合,この関数によって出力されます。また,この関数を発行するjstqlcls関数を発行するまでは,前に発行した関数の情報(書式名など)が引き継がれます。

(3) jstqlctp関数

書式印刷時にずれを生じさせないように,行データの制御情報を作成して,行バッファに格納します。ここで指定した制御情報は,jstqllpt関数の発行,または改ページまで有効です。

[図データ]

(a) 形式の説明
  1. JSTQL_COMアドレス
    jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。
  2. JSTQL_CTLアドレス
    行データの制御情報を設定する制御情報テーブルの先頭アドレスを指定します。制御情報テーブルの形式,制御情報テーブルに指定できる定数と値を次に示します。

    図5-15  行データの制御情報テーブル(JSTQL_CTL)の形式

    [図データ]

    表5-14 行データの制御情報テーブル(JSTQL_CTL)に指定できる定数と値

    制御情報の
    種類
    定数(ctl_type)指定値
    (ctl_val)
    意味
    文字サイズJSTQ_TYPE_PNT50文字サイズに5ポイントを指定します。
    70文字サイズに7ポイントを指定します。
    90文字サイズに9ポイントを指定します。
    120文字サイズに12ポイントを指定します。
    文字の間隔JSTQ_TYPE_INT0文字の間隔を指定しません。
    1~7文字の間隔に1~7ポイントを指定します。
    書体JSTQ_TYPE_FMT0書体を元に(標準値に)戻します。
    1書体に明朝体を指定します。
    2書体にゴシック体を指定します。
    9書体にOCR体を指定します
    拡大(平体)JSTQ_TYPE_WID0拡大を指定しません。
    1拡大を指定します。
    注※ 
    OCR体は,文字サイズに9ポイントを指定したときだけ有効です。

  3. 項目数
    制御情報テーブル中に設定した制御情報の項目数を指定します。

(例)

[図データ]

(b) リターン情報

関数のリターン値を次に示します。

(c) 注意事項

行の先頭での制御情報の初期値は,文字サイズ,文字の間隔および書体はドローで定義した値,平体は指定なしです。ただし,環境定数(XMAP3_FORMAT)で書体を指定している場合,環境変数で指定した書体が有効となります。ここで指定した制御情報は,jstqllpt関数の発行,または改ページまで有効です。

(4) jstqldat関数

文字データを編集して,行バッファに格納します。

[図データ]

(a) 形式の説明
  1. JSTQL_COMアドレス
    jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。
  2. 文字データのアドレス
    出力する文字データ(行データ)のアドレスを指定します。
  3. 文字データの長さ
    出力する文字データ(行データ)の長さを,バイト数で指定します。
(b) リターン情報

関数のリターン値を次に示します。

(c) 注意事項

この関数では,印刷する文字データ(行データ)だけを指定し,行送りなどはjstqllpt関数で指定します。

(5) jstqllpt関数

行バッファに格納されている行データに行送り情報を付けて,1行分のデータをページバッファに出力します。ただし,改ページを指定したときや,改ページが発生したときは,ページバッファに格納されている1ページ分のデータをプリンタに出力します。

[図データ]

(a) 形式の説明
  1. JSTQL_COMアドレス
    jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。
  2. JSTQL_CTLアドレス
    行送り情報を設定する制御情報テーブルの先頭アドレスを指定します。制御情報テーブルの形式と,制御情報テーブルに指定できる定数と値を次に示します。

    図5-16  行送りの制御情報テーブル(JSTQL_CTL)の形式

    [図データ]

    表5-15 行送りの制御情報テーブル(JSTQL_CTL)に指定できる定数と値

    制御情報の種類定数(ctl_type)指定値
    (ctl_val)
    意味
    改行JSTQ_TYPE_NLN0~990~99行分改行します
    チャネル
    スキップ
    JSTQ_TYPE_CNL0行送りをしません
    1紙送りチャネル番号C01(改ページ)を指定します
  3. 行出力と行送りのタイミング
    行データを行送り後に出力するか,または行送り前に出力するかを指定します。行送り後に行データを出力する場合は「0」を,行送り前に出力する場合は「1」を指定します。0または1以外の値を指定した場合は「0」を仮定します。
(b) リターン情報

関数のリターン値を次に示します。

(c) 注意事項

この関数を発行しない場合でも,ページバッファに格納された行データの数が1ページに印刷できる行数を超えるとき,またはページバッファに格納できるデータ長の制限を超えるときは,自動的に改ページされます。

(6) jstqlcls関数

行データの編集を終了します。

[図データ]

(a) 形式の説明
  1. JSTQL_COMアドレス
    jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。
(b) リターン情報

関数のリターン値を次に示します。

(c) 注意事項

この関数を発行したとき,バッファ中に残っている行データは,すべて出力されます。なお,行バッファの文字データは,ページバッファに格納され,ページバッファから出力されます。