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


11.2.2 CALL文による印刷

ここでは,COBOLのCALL文での,オープン要求,出力要求,およびクローズ要求について説明します。

CALL文による印刷は,Windows版XMAP3サーバ/クライアント実行環境(64ビット)で動作するAPでは利用できません。

〈この項の構成〉

(1) CALL命令

CALL命令の形式を次に示します。

  CALL 'jsvwadrv' USING XMAP-COM XMAP-REQ データ名3 データ名4

(2) インタフェース領域の取り込み方法

XMAP3が提供しているインタフェース領域(Jsvwatbl.cbl)をAPに取り込むには,COPY文を使用します。COPY文は,WORKING-STORAGE SECTION,またはLINKAGE SECTIONに指定します。また,コンパイルする前にJsvwatbl.cblのフォルダ名をCBLLIBに設定しておきます。インタフェース領域を次の図に示します。

図11‒2 インタフェース領域
 * COMMON INTERFACE AREA
  01 XMAP-COM.
      03 XMAP-COM-ID        PIC X(4).
      03 XMAP-COM-RTN       PIC 9(4) COMP-5.
      03 XMAP-COM-RSN       PIC 9(4) COMP-5.
      03 XMAP-COM-RSV1      PIC X(3).
      03 XMAP-COM-ITYPE     PIC X.
      03 XMAP-COM-TNAME     PIC X(8).
      03 XMAP-COM-RSV2      PIC X(4).
      03 XMAP-COM-MSG       PIC X(4).
      03 XMAP-COM-RSV3      PIC X(44).
      03 XMAP-COM-MAPNAME   PIC X(8).
      03 XMAP-COM-RSV4      PIC X(8).
      03 XMAP-COM-INLNG     PIC S9(8) COMP-5.
      03 XMAP-COM-RSV5      PIC X(68).
 *
 * REQUEST INTERFACE AREA
  01 XMAP-REQ
      03 XMAP-REQ-TYPE      PIC X(4).
      03 XMAP-REQ-OPT1      PIC X.
      03 XMAP-REQ-OPT2      PIC X.
      03 XMAP-REQ-RSV       PIC X(2).
 *
 * OPEN INTERFACE AREA
  01 XMAP-OPN.
      03 XMAP-OPN-DCODE-SET PIC X.
      03 XMAP-OPN-DCODE     PIC X.
      03 XMAP-OPN-RSV       PIC X(2).

(3) オープン要求

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

  PROCEDURE DIVISION.
     :
  INITIALIZE    XMAP-COM                     ┐
     REPLACING    NUMERIC   DATA  BY  ZERO   ├ …… 1.共通エリアをクリア
        ALPHANUMERIC   DATA   BY   LOW-VALUE.┘
      
  MOVE ALL SPACE  TO XMAP-REQ.            …………… 2.要求エリアをクリア
  *
  MOVE 'OPEN' TO XMAP-REQ-TYPE.           …………… 3.オープン要求をセット
  MOVE '*XP△' TO XMAP-COM-ID.            …………… 4.IDをセット
  MOVE 'I'   TO XMAP-COM-ITYPE.           …………… 5.ID区分をセット
  MOVE 'OWS△' TO XMAP-COM-MSG.           …………… 6.プリンタの通信種別をセット
  MOVE 'PRT001△△' TO XMAP-COM-TNAME.    …………… 7.仮想端末名を代入
  MOVE '1'   TO XMAP-OPN-DCODE-SET.       …………… 8.データ有無コードをセット
  MOVE X'1F'  TO XMAP-OPN-DCODE.
  MOVE SPACE  TO XMAP-OPN-RSV.
  CALL 'jsvwadrv' USING XMAP-COM          …………… 9.共通インタフェース領域
                        XMAP-REQ          …………… 10.要求インタフェース領域
                        XMAP-OPN          …………… 11.オープンインタフェース領域
                        BY VALUE 0.

(4) 出力要求

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

  MOVE 'SEND' TO XMAP-REQ-TYPE.  ……… 1.出力要求をセット
  MOVE '△'   TO XMAP-REQ-OPT1.  ……… 2.必ず空白をセット
  MOVE '1'   TO XMAP-REQ-OPT2.   ……… 3.出力要求の場合’1’をセット
  MOVE 'MAP3016B' TO XMAP-COM-MAPNAME. … 4.物理マップ名をセット
  MOVE データ TO MAP301O.    ……………… 5.帳票出力したいデータを論理マップへセット
  CALL 'jsvwadrv' USING XMAP-COM  ……… 6.共通インタフェース領域
                        XMAP-REQ  ……… 7.要求インタフェース領域
                    MAP301O   ……… 8.出力論理マップ
                    BY VALUE 0. 

(5) クローズ要求

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

  MOVE 'CLOS' TO XMAP-REQ-TYPE.      ……… 1.クローズ要求をセット
  MOVE '△'   TO XMAP-REQ-OPT1.      ……… 2.必ず空白をセット
  MOVE '△'   TO XMAP-REQ-OPT2.      ……… 3.必ず空白をセット
  CALL 'jsvwadrv' USING XMAP-COM     ……… 4.共通インタフェース領域
                        XMAP-REQ     ……… 5.要求インタフェース領域
                        BY VALUE 0 0.