APからプリンタに対して帳票を印刷するには,次に示す方法があります。
ここでは,日立COBOLのSEND文によって帳票を印刷する方法について,指定例を使用して説明します。なお,詳細については,マニュアル「COBOL2002 言語 拡張仕様編」またはマニュアル「COBOL85 言語」を参照してください。
帳票の印刷に必要な情報をCOMMUNICATION SECTION中に指定します。
定義対象 | マップ名が6文字のとき | マップ名が7文字のとき |
---|---|---|
けい線帳票(カット紙/連続紙) | 6A | P |
プレプリント帳票(カット紙/連続紙) | 6H | L |
網掛け帳票 | 6B | R |
グラフィック帳票 | 6G | G |
書式オーバレイ | 6G | F |
表7-5 STATUS KEY句の実行状態コード
コード | 意味 | 状態/要因/対処方法 |
---|---|---|
'00000' | 正常終了 | データの出力が正常に終了しました。 |
'00008' | 論理エラー | COBOLのAPに誤りがあります。APの誤りを調べて修正します。 |
'10008' | マッピングエラー | 帳票データのマッピング中にエラーが発生しました。 STATUS KEY句の指定がない場合,実行を中止します。 STATUS KEY句の指定がある場合,処理を続行します。エラーコードの内容を調査して対処する必要があります※。 |
'20008' | 出力エラー | 帳票データの出力中にエラーが発生しました。 STATUS KEY句の指定がない場合,実行を中止します。 STATUS KEY句の指定がある場合,処理を続行します。エラーコードの内容を調査して対処する必要があります※。 |
プリンタへの帳票印刷をします。
APで帳票印刷をする場合,プログラム終了までプリンタを解放しません。このため,印刷していないときには,DISABLE文を使用してプリンタを解放し,ほかのプログラムで印刷できるようにします。
XMAP3オープンの引き継ぎ
XMAP3に対するオープン命令は,最初のSEND文が発行されたときに認識されます。また,APが終了する場合は,クローズ命令が発行されたと仮定されます。
別々にコンパイルしたAP間では,XMAP3のオープン状態を引き継げます。AP間でオープンを引き継ぐ方法については,「7.2.5 COBOL開発マネージャを使用したコンパイルと実行のポイント」を参照してください。
ここでは,COBOLのCALLインタフェースによってマッピングライブラリを使用する場合の説明をします。
CALLインタフェースを使用する場合の環境部(ENVIRONMENT DIVISION)の定義を次に示します。
環境部に上記の指定をした場合には,コンパイル時に次の注意が必要です。
環境部に上記のコーディングを追加しない場合は,コンパイル時に次の指定をする必要があります。
マッピングライブラリの機能と命令の発行順序を次の図に示します。
図7-4 マッピングライブラリの機能と命令の発行順序
CALL命令の形式を次に示します。
表7-6 共通インタフェース領域の形式(XMAP-COM)
データ項目名 | 長さ (位置) | データ形式 | 指定内容(データ名) |
---|---|---|---|
アイキャッチャ | 4 | X(4) | '*XP△'とします(XMAP-COM-ID) |
リターンコード | 2(4) | 9(4)COMP-5 | 2進形式で格納します(XMAP-COM-RTN) |
リターンコード詳細 | 2(6) | 9(4)COMP-5 | 2進形式で格納します(XMAP-COM-RSN) |
未使用 | 3(8) | X(3) | (00)16とします(XMAP-COM-RSV1) |
id区分 | 1(11) | X | 必ず'I'とします(XMAP-COM-ITYPE) |
仮想端末名称 | 8(12) | X(8) | 仮想端末定義ファイルで指定した名称を左詰めで指定し,残りは空白とします (XMAP-COM-TNAME)※ |
未使用 | 4(20) | X(4) | (00)16とします(XMAP-COM-RSV2) |
通信種別 | 4(24) | X(4) | プリンタ要求時は'OWS△'とします (XMAP-COM-MSG) |
未使用 | 44(28) | X(44) | (00)16とします(XMAP-COM-RSV3) |
マップ名称 | 8(72) | X(8) | 物理マップ名を左詰めでデバイスID付きで指定し,残りは空白とします (XMAP-COM-MAPNAME) |
未使用 | 8(80) | X(8) | (00)16とします(XMAP-COM-RSV4) |
未使用 | 4(88) | S9(8)COMP-5 | 0とします(XMAP-COM-INLNG) |
未使用 | 68(92) | X(68) | (00)16とします(XMAP-COM-RSV5) |
表7-7 要求インタフェース領域の形式(XMAP-REQ)
データ項目名 | 長さ (位置) | データ形式 | 指定内容(データ名) |
---|---|---|---|
要求種別 | 4 | X(4) | 'OPEN':オープン要求 'CLOS':クローズ要求 'SEND':出力要求 (XMAP-REQ-TYPE) |
未使用 | 1(4) | X | '△'とします(XMAP-REQ-OPT1) |
SEND オプション | 1(5) | X | '1':出力要求 '△':上記以外(XMAP-REQ-OPT2) |
未使用 | 2(6) | X(2) | '△△'とします(XMAP-REQ-RSV) |
表7-8 オープンインタフェース領域の形式(XMAP-OPN)
データ項目名 | 長さ (位置) | データ形式 | 指定内容(データ名) |
---|---|---|---|
データ有無コード 使用選択 | 1 | X | '1':データ有無コードを指定します その他:データ有無コードを指定しません(標準値「1F」を仮定) (XMAP-OPN-DCODE-SET) |
データ有無コード | 1(1) | X | データ有無コードを指定する場合,2桁の16進数(00~FF)で指定します (XMAP-OPN-DCODE) |
未使用 | 2(6) | X(2) | '△△'とします(XMAP-OPN-RSV) |
なお,データ有無コード使用選択項目でデータ有無コードを無効にする指定をした場合は,標準値「1F」が仮定されます。
XMAP3が提供しているインタフェース領域(Jsvwatbl.cbl)をAPに取り込むには,COPY文を使用します。COPY文は,WORKING-STORAGE SECTION,またはLINKAGE SECTIONに指定します。また,コンパイルする前にJsvwatbl.cblのフォルダ名をCBLLIBに設定しておきます。インタフェース領域を次の図に示します。
図7-5 インタフェース領域
CALL命令を使用する場合,帳票を印字したいプリンタに付けた仮想端末名称単位にオープン要求をします。複数の仮想端末(プリンタ)をオープン要求する場合,インタフェース領域は,各端末に用意します。一つのAP(プロセス)内で同時にオープンできる端末数の上限は15個です。
オープン要求した仮想端末へ帳票印刷をします。オープン要求で使用した共通インタフェース領域を引き継いで使用します。
仮想端末をクローズします。オープン要求,および出力要求で使用したインタフェース領域を引き継いで使用します。