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


12.2.1 帳票印刷命令(C言語)

ここでは,C言語で開発するときに使用する関数の形式と,オープン要求,クローズ要求,および出力要求について説明します。

〈この項の構成〉

(1) jsvwadrv関数

jsvwadrv関数の形式を次に示します。

  long APIENTRY jsvwadrv(XMAP_COMアドレス,XMAP_REQアドレス,パラメタ3,パラメタ4)

(a) リターン情報

共通インタフェース領域のxmap_com_rtnにリターン値が設定されます。リターン値を次に示します。

  • 0:正常終了

  • 4,8:異常終了(詳細については,共通インタフェース領域のxmap_com_rsnに設定される)

  • 12:パラメタ不正

(b) インタフェーステーブルの取り込み方法

XMAP3で用意しているインタフェーステーブル(jsvwatbl.h)をAPに取り込む場合,#include指示語を使用します。

  #include "jsvwatbl.h" … インタフェーステーブルの取り込み

ただし,jsvwatbl.h中のインタフェーステーブルは,構造体の形式などを定義しており,#include指示語によってAPに実領域は取られません。このため,AP中でインタフェース領域を取る必要があります。インタフェースを取る例を次に示します。

  #include "jsvwatbl.h"
 
  XMAP_COM com;   /* 共通インタフェース領域   */
  XMAP_REQ req;   /* 要求インタフェース領域   */
  XMAP_OPN opn;   /* オープンインタフェース領域 */

インタフェーステーブルを次の図に示します。

図12‒2 インタフェーステーブル
 /***     COMMON INTERFACE AREA     ********************************/
 typedef struct {
  char         xmap_com_id[4];
  unsigned short    xmap_com_rtn;
  unsigned short    xmap_com_rsn;
  char         xmap_com_rsv1[3];
  char         xmap_com_itype;
  char         xmap_com_tname[8];
  char         xmap_com_rsv2[4];
  char         xmap_com_msg[4];
  char         xmap_com_rsv3[44];
  char         xmap_com_mapname[8];
  char         xmap_com_rsv4[8];
  long         xmap_com_inlng;
  char         xmap_com_rsv5[68];
 }     XMAP_COM;
 
 /***     REQUEST INTERFACE AREA     ******************************/
 typedef struct {
  char         xmap_req_type[4];
  char         xmap_req_opt1;
  char         xmap_req_opt2;
  char         xmap_req_rsv[2];
 }     XMAP_REQ;
 
 /***     OPEN INTERFACE AREA     *********************************/
 typedef struct {
  char         xmap_opn_dcode_set;
  unsigned char     xmap_opn_dcode;
  char         xmap_opn_rsv[2];
 }     XMAP_OPN;

(2) オープン要求

jsvwadrv関数を使用する場合,帳票を出力したい端末に付けた仮想端末名単位にオープン要求をします。複数の仮想端末をオープン要求する場合,インタフェース領域は各仮想端末に用意する必要があります。一つのAP(プロセス)内で同時にオープンできる端末数の上限は15個です。

[図データ]

(3) クローズ要求

仮想端末をクローズします。オープン要求,および出力要求で使用したインタフェースを引き継いで使用します。

[図データ]

(4) 出力要求

オープン要求した仮想端末へ帳票を出力します。オープン要求で使用した共通インタフェース領域を引き継いで使用します。

[図データ]