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

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

7.3.3 画面表示命令(C言語)

XMAP3を呼び出すためのC言語インタフェースは,次に示すjsvwadrv関数を提供します。

<この項の構成>
(1) jsvwadrv関数の発行順序
(2) jsvwadrv関数
(3) リンケージ時の注意事項

(1) jsvwadrv関数の発行順序

jsvwadrv関数の機能と発行順序を次に示します。

[図データ]

(2) jsvwadrv関数

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

  
   long APIENTRY jsvwadrv(XMAP_COMアドレス,XMAP_REQアドレス,
               パラメタ3,パラメタ4)
  
  1. XMAP_COMアドレス
    共通インタフェース領域のアドレスを指定します。形式の詳細を次の表に示します。この領域は,画面を出力したい端末単位に作成し,オープンしたときの領域をクローズ要求まで引き継いで使用します。また,次に示す各要求時にマッピング,および入出力に必要な情報を代入します。
    • オープン時 : 仮想端末名,通信種別を指定する。
    • 出力要求時 : 物理マップ名称を指定する。
    • 入力要求時 : 入力論理マップ長を指定する

      表7-8 共通インタフェース領域の形式(XMAP_COM,C言語)

      項目 長さ
      (位置)
      データ形式 格納内容 データ名
      アイキャッチャ 4 char[4] '*XP△'とする xmap_com_id
      リターンコード※1 2(4) unsigned short 2進形式でXMAP3が格納 xmap_com_rtn
      画面入出力時のリターンコード※1 2(6) unsigned short 2進形式でXMAP3が格納 xmap_com_rsn
      未使用 3(8) char[3] (00)16とする xmap_com_rsv1
      id区分 1(11) char 必ず'I'とする xmap_com_itype
      仮想端末名 8(12) char[8] 出力先の仮想端末名を指定する(標準は'DSP001△△'を指定する) xmap_com
      _tname
      未使用 4(20) char[4] (00)16とする xmap_com_rsv2
      通信種別 4(24) char[4] 'BWS△'とする xmap_com_msg
      未使用 44(28) char[44] (00)16とする xmap_com_rsv3
      マップ名称 8(72) char[8] 物理マップ名を左詰めでデバイスID付きで指定する。残りは空白※2 xmap_com
      _mapname
      未使用 8(80) char[8] (00)16とする xmap_com_rsv4
      入力論理
      マップ長
      4(88) long 入力論理マップ長を指定する xmap_com_inlng
      未使用 68(92) char[68] (00)16とする xmap_com_rsv5

      注※1
      論理マップ名については,「7.2.3(1)(a) 通信記述項」を参照してください。

      注※2
      リターンコードについては「7.2.3(1)(g) STATUS KEY句のリターンコード」を参照してください。

  2. XMAP_REQアドレス
    要求インタフェース領域のアドレスを指定します。形式の詳細を次の表に示します。この領域は,必ず指定してください。この領域で指定した内容によって要求種別が決まります。

    表7-9 要求インタフェース領域の形式(XMAP_REQ,C言語)

    項目 長さ
    (位置)
    データ形式 指定内容 データ名
    要求種別 4 char[4] 'OPEN':オープン要求
    'CLOS':クローズ要求
    'RECV':入力要求
    'SEND':出力要求
    '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
     
  3. パラメタ3
    • 出力要求時:出力論理マップのアドレスを指定する。
    • 入力要求時:入力論理マップのアドレスを指定する。
    • クローズ要求時:0Lを指定する。
    • オプション設定要求時:1Lを指定する。
    • オープン要求時:オープンインタフェース領域のアドレスを必ず指定する。
    オープンインタフェース領域の詳細を次の表に示します。

    表7-10 オープンインタフェース領域の形式(XMAP_OPN,C言語)

    項目 長さ
    (位置)
    データ形式 指定内容(データ名) データ名
    データ有無コード使用選択 1 char '1':データ有無コードを指定する
    その他:データ有無コードを指定しない(標準値「1F」を仮定)
    xmap_opn_dcode_set
    データ有無コード 1(1) unsigned char データ有無コードを指定する場合,2桁の16進数(00〜FF)で指定する xmap_opn_dcode
    未使用 2(2) char[2] '△△'とする xmap_opn_rsv

    なお,データ有無コード使用選択項目でデータ有無コードを無効にする指定をした場合は,標準値「1F」が仮定されます。


  4. パラメタ4
    オプション設定要求時は,マッピングインタフェース領域を指定します。形式の詳細を次の表に示します。なお,マッピングオプションを指定しない場合には,0を指定します。

    表7-11 マッピングインタフェース領域の形式(XMAP_MDO,C言語)

    項目 長さ
    (位置)
    データ形式 指定内容(データ名) データ名
    マッピングオプション大分類 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_MDO_MAPFLD:マージ
    XMAP_MDO_PHFLD:物理マップだけ
    XMAP_MDO_LOGFLD:論理マップだけ
    なお,マッピングオプションの指定値の詳細については「1.5.3(1) マッピングオプション」を参照してください。

(a) リターン情報

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

0:正常終了

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

12:パラメタ不正

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

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

[図データ]

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

(例)
[図データ]

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

図7-16 インタフェーステーブル

[図データ]

(c) オープン要求

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

(例)
[図データ]
(d) クローズ要求

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

(例)
[図データ]
(e) 出力要求

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

(例)
[図データ]

注 
jsvwadrv関数を呼ぶ前に,表示したいデータを出力論理マップにセットしてください。
(f) 入力要求

入力要求によって,画面から入力した情報をAPへ入力します。画面表示要求で使用したインタフェース領域を引き継いで使用します。

(例)
[図データ]
(g) オプション設定要求

仮想端末へ画面を表示する場合,マッピングオプションを指定できます。オープン要求で使用した共通インタフェース領域を引き継いで使用します。

(例)
[図データ]

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

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

Visual C++ .NET,Visual C++ 6.0の場合
XMAP3インストール先\LIB\X3MWDR32.LIB

Visual C++ 5.0の場合
XMAP3インストール先\LIB\V3Compatible\X3MWDR32.LIB