画面・帳票サポートシステム XMAP3 プログラミングガイド 帳票編

[目次][用語][索引][前へ][次へ]

8.3.2 行データの帳票印刷

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

図8-7 関数の機能と発行順序

[図データ]

<この項の構成>
(1) jstqlopn関数
(2) jstqlpag関数
(3) jstqlctp関数
(4) jstqldat関数
(5) jstqllpt関数
(6) jstqlcls関数
(7) リンケージ時の注意事項

(1) jstqlopn関数

環境変数を取り込んで,行データの編集を開始します。なお,環境変数については,マニュアル「XMAP3 開発・実行ガイド」を参照してください。

[図データ]

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

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

    属性および名称 位置 長さ 内容 備考
    (バイト)
    unsigned char lcomid 0 4 テーブル
    ID:'XMP3'
    jstqlopn関数を呼び出す前に設
    定します
    unsigned char *lcomsvnm 4 4 印刷サービス名称のアドレス
    unsigned char lcomdevnm 8 6 予備 jstqlopn関数を呼び出す前に必
    ず,NULL(0x00)でクリア
    します1
    unsigned char lcomrsv1 14 2 予備
    unsigned char lcompgcnm 16 8 予備
    unsigned char lcomrsv2 24 4 予備
    unsigned char *lcompgedr 28 4 予備
    long lcomrc 32 4 リターンコード 関数呼び出し後に参照します
    3
    long lcomerr 36 4 エラー詳細コード2
    unsigned char lcomsync 40 1 予備 jstqlopn関数を呼び出す前に
    必ずNULL(0x00)でクリア
    します1
    unsigned char lcomrsv3 41 1 予備
    unsigned char lcomrsv4 42 1 予備
    unsigned char lcomrsv5 43 1 予備
    unsigned char lcomrsv6 44 12 予備
    unsigned char *lcomxppdr 56 4 予備
    unsigned char lcomperr 60 4 ページ制御エラー情報 ページ制御のエラー発生時に参照します3
    unsigned char *lcomxperr 64 4 予備 jstqlopn関数を呼び出す前に必ずNULL(0x00)でクリアします1
    unsigned char lcomwrk 68 188 XMAP3の作業領域 jstqlopn関数を呼び出す前に必ずNULL(0x00)でクリアします1

    注※1
    NULL(0x00)でクリアしたあとは,使用しないでください。

    注※2
    エラー詳細コードについては,「付録E リターンコードの詳細」を参照してください。

    注※3
    各関数を呼び出す前に,必ずNULL(0x00)でクリアしてください。

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

(b) リターン情報

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

(2) jstqlpag関数

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

[図データ]

(a) 形式の説明
  1. JSTQL_COMアドレス
    jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。
  2. 予備
    必ず,NULLを指定します。
  3. 予備
    必ず,NULLを指定します。
  4. 書式名格納領域のアドレス
    書式名(マップ名にIDを付けた名称(IDはマップ名が6文字のときは6G,7文字のときはF))が格納されている領域のアドレスを必ず指定します。書式名は,8バイト以内の文字列で,NULLを終端とします。書式名を9バイト以上で指定した場合は,先頭から8バイト分を書式名とみなします。
    ただし,Windows NT 4.0,Windows 2000,Windows XP,Windows Server 2003,またはWindows Server 2003 x64の場合,書式名の指定がNULLポインタのとき,文字列がNULLまたは空白だけのときは,環境変数「XMAP3_FMP」で指定した名称が仮定されます。
(b) リターン情報

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

(c) 注意事項

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

(3) jstqlctp関数

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

[図データ]

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

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

    [図データ]

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

    制御情報の
    種類
    定数(ctl_type) 指定値
    (ctl_val)
    意味
    文字サイズ JSTQ_TYPE_PNT 50 文字サイズに5ポイントを指定します
    70 文字サイズに7ポイントを指定します
    90 文字サイズに9ポイントを指定します
    120 文字サイズに12ポイントを指定します
    文字の間隔 JSTQ_TYPE_INT 0 文字の間隔を指定しません
    1〜7 文字の間隔に1〜7ポイントを指定します
    書体 JSTQ_TYPE_FMT 0 書体を元に(標準値に)戻します
    1 書体に明朝体を指定します
    2 書体にゴシック体を指定します
    9 書体にOCR体を指定します
    拡大(平体) JSTQ_TYPE_WID 0 拡大を指定しません
    1 拡大を指定します

    注※
    OCR体は,文字サイズに9ポイントを指定したときだけ有効です。

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

(例)
[図データ]
(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アドレス
    行送り情報を設定する制御情報テーブルの先頭アドレスを指定します。制御情報テーブルの形式と,制御情報テーブルに指定できる定数と値を次に示します。

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

    [図データ]

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

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

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

(c) 注意事項

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

(6) jstqlcls関数

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

[図データ]

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

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

(c) 注意事項

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

(7) リンケージ時の注意事項

ライブラリには,次に示すファイルを指定する必要があります。

Visual C++ .NET,Visual C++ 6.0の場合
XMAP3インストール先\Lib\X3klib32.lib

Visual C++ 5.0の場合
XMAP3インストール先\Lib\V3Compatible\X3klib32.lib