jsvwadrv関数の機能と発行順序を図5-12に示します。
図5-12 jsvwadrv関数の機能と発行順序
jsvwadrv関数の形式を次に示します。
表5-9 共通インタフェース領域の形式(XMAP_COM)
データ項目名 | 長さ(位置) | データ形式 | 指定内容(データ名) |
---|---|---|---|
アイキャッチャ | 4 | char[4] | 「*XP△」とします(xmap_com_id) |
リターン値 | 2(4) | unsigned short | 2進形式で格納(xmap_com_rtn) |
リターンコード詳細 | 2(6) | unsigned short | 2進形式で格納(xmap_com_rsn) |
未使用 | 3(8) | char[3] | (00)16とします(xmap_com_rsvl) |
id区分 | 1(11) | char | 必ず「I」とします(xmap_com_itype) |
仮想端末名称 | 8(12) | char[8] | 仮想端末定義ファイルで指定した名称を左詰めで指定し,残りは空白です。仮想端末名を省略して空白を8バイトセットすると,仮想端末定義ファイル中の先頭に定義された仮想端末名が仮定されます(xmap_com_tname) |
未使用 | 4(20) | char[4] | (00)16とします(xmap_com_rsv2) |
通信種別 | 4(24) | char[4] | ディスプレイの場合は,「BWS△」とします。プリンタの場合は,「OWS△」とします(xmap_com_msg) |
未使用 | 44(28) | char[44] | (00)16とします(xmap_com_rsv3) |
マップ名称 | 8(72) | char[8] | 物理マップ名を左詰めでデバイスID付きで指定します。残りは空白です(xmap_com_mapname) |
未使用 | 2(80) | char[2] | (00)16とします(xmap_com_rsv4) |
未使用 | 6(82) | char[6] | (00)16とします(xmap_com_pagename) |
入力論理マップ長 | 4(88) | long | 入力論理マップ長を指定します(xmap_com_inlng) |
未使用 | 68(92) | char[68] | (00)16とします(xmap_com_rsv5) |
表5-10 要求インタフェース領域の形式(XMAP_REQ)
データ項目名 | 長さ(位置) | データ形式 | 指定内容(データ名) |
---|---|---|---|
要求種別 | 4 | char[4] | OPEN:オープン要求 CLOS:クローズ要求 SEND:出力要求 RECV:入力要求 MDO△:オプション設定要求(xmap_req_type) |
RECEIVEオプション | 1(4) | char | F:入力要求 △:入力要求以外(xmap_req_opt1) |
SENDオプション | 1(5) | char | 1:出力要求 △:出力要求以外(xmap_req_opt2) |
未使用 | 2(6) | char[2] | 「△△」とします(xmap_req_rsv) |
表5-11 オープンインタフェース領域の形式(XMAP_OPN)
データ項目名 | 長さ(位置) | データ形式 | 指定内容(データ名) |
---|---|---|---|
データ有無コード使用選択 | 1 | char | 1:データ有無コードを有効にします その他:データ有無コードを無効にします(xmap_opn_dcode_set) |
データ有無コード | 1(1) | unsigned char | データ有無コードを指定します(xmap_opn_dcode) |
未使用 | 2(2) | char[2] | 「△△」とします(xmap_opn_rsv) |
表5-12 マッピングインタフェース領域の形式(XMAP_MDO)
データ項目名 | 長さ(位置) | データ形式 | 指定内容(データ名) |
---|---|---|---|
マッピングオプション大分類 | 4 | unsigned long | XMAP_MDO_SFLDの内容をセットします(xmap_mdo_opt1) |
マッピングオプション小分類 | 4(4) | unsigned long | マージ:XMAP_MDO_MAPFLDの内容をセットします※ 物理マップだけ:XMAP_MDO_PHFLDの内容をセットします※ 論理マップだけ:XMAP_MDO_LOGFLDの内容をセットします※(xmap_mdo_opt2) |
共通インタフェース領域のxmap_com_rtnにリターン値が設定されます。リターン値を次に示します。
XMAP3 Serverが提供しているインタフェーステーブル(jsvwatbl.h)をアプリケーションプログラムに取り込む場合,#include指示語を使います。
ただし,jsvwatbl.h中のインタフェーステーブルは,構造体の形式などを定義しているだけで,#include指示語によってアプリケーションプログラムに実領域が取られるのではありません。そのため,アプリケーションプログラム中でインタフェース領域を定義しなければなりません。インタフェース領域を定義する例を図5-13に示します。
図5-13 インタフェース領域の定義例
jsvwadrv関数を使用する場合,画面・帳票を表示,印刷したい端末に付けた仮想端末名単位にオープン要求を実行します。複数の仮想端末(ディスプレイとプリンタ)をオープン要求する場合,インタフェース領域は仮想端末ごとに用意します。
仮想端末をクローズします。オープン要求,出力要求および入力要求で使用したインタフェース領域を引き継いで使用します。
オープン要求した仮想端末へ画面表示,帳票印刷を実行します。オープン要求で使用した共通インタフェース領域を引き継いで使用します。
入力要求によって,画面から入力した情報をアプリケーションプログラムへ入力します。画面表示要求で使用したインタフェース領域を引き継いで使用します。ただし,プリンタの場合は指定できません。
仮想端末へ画面表示をする場合,マッピングオプションを指定できます。オープン要求で使用した共通インタフェース領域を引き継いで使用します。