|目次前ページ次ページ|
─────────────────────────────────────
■印刷管理ジョブ使用手引書■  copyright エスアイエム
─────────────────────────────────────
■印刷管理グローバル定義

*** 帳票イメージファイルのレイアウトを規定します。
------------------------------------------------------------
 ^VcomSPL("SEQ","SEQ")=スプール番号(自動採番) 
------------------------------------------------------------
^VcomSPL("DATA",SPOOLNO,"INFO","TITLE")=帳票タイトル
^VcomSPL("DATA",SPOOLNO,"INFO","PID")=プログラムID
^VcomSPL("DATA",SPOOLNO,"INFO","PAPERSIZE")=用紙サイズ
^VcomSPL("DATA",SPOOLNO,"INFO","PAGEFORM")=ページフォーマット
^VcomSPL("DATA",SPOOLNO,"INFO","SEQTYPE")=制御シーケンスタイプ
^VcomSPL("DATA",SPOOLNO,"INFO","DEVICE")=デバイスの通称(型番)
^VcomSPL("DATA",SPOOLNO,"INFO","REMARKS")=コメント
^VcomSPL("DATA",SPOOLNO,"INFO","DPI")=解像度(DPI) --- (コメント情報)
^VcomSPL("DATA",SPOOLNO,"INFO","YMD")=作成年月日
^VcomSPL("DATA",SPOOLNO,"INFO","TIME1")=作成開始時間($H)
^VcomSPL("DATA",SPOOLNO,"INFO","TIME2")=作成終了時間($H)
^VcomSPL("DATA",SPOOLNO,"INFO","STATUS")=スプール状態
^VcomSPL("DATA",SPOOLNO,"INFO","PAPERSEL")=給紙モードの選択
^VcomSPL("DATA",SPOOLNO,"INFO","ZENHAN12")=全角半角2:1で出力するモード
^VcomSPL("DATA",SPOOLNO,"INFO","LOCATEOPTION")=位置ずけのオプション
^VcomSPL("DATA",SPOOLNO,"INFO","LINES")=頁の行数
^VcomSPL("DATA",SPOOLNO,"INFO","COLUMNS")=頁の桁数
^VcomSPL("DATA",SPOOLNO,"INFO","OUTCNT")=出力回数
^VcomSPL("DATA",SPOOLNO,"INFO","OUTJOB",$J)=出力回数
^VcomSPL("DATA",SPOOLNO,"INFO","YMD2",出力回数)=出力年月日
^VcomSPL("DATA",SPOOLNO,"INFO","DESPOOL",出力回数)=デスプール状態
^VcomSPL("DATA",SPOOLNO,"INFO","TIME3",出力回数)=出力開始時間
^VcomSPL("DATA",SPOOLNO,"INFO","TIME4",出力回数)=出力終了時間
-------------------------------------------------------------
 ^VcomSPL("INDEX",YMD,SPOOLNO)="" 
-------------------------------------------------------------
*** 印刷プレビューでより実際に似た画面にしたい場合は
    実際に印字する位置の(y,x) に文字列を格納する必要があります。
^VcomSPL("DATA",SPOOLNO,"BODY",ページ番号,y,x,"CODE")=プリンタ出力データ(テキスト文字列)
  ===>この文字列が印刷プレビューで表示されます。 
^VcomSPL("DATA",SPOOLNO,"BODY",ページ番号,y,x,"ATRB")=プリンタ出力属性シーケンス(出力前)
  ===>印刷プレビューでは無視されます
^VcomSPL("DATA",SPOOLNO,"BODY",ページ番号,y,x,"RESET")=プリンタ出力属性シーケンス(出力後)
  ===>印刷プレビューでは無視されます
-------------------------------------------------------------
^VcomSPL("DATA",SPOOLNO,"INITDOC",n)=文書の先頭で出力するシーケンス群
-------------------------------------------------------------
^VcomSPL("DATA",SPOOLNO,"INITPAGE",n)=全てのページで最初に出力するシーケンス群
-------------------------------------------------------------
^VcomSPL("DATA",SPOOLNO,"TERMDOC",n)=文書の最後で出力するシーケンス群
-------------------------------------------------------------
^VcomSPL("DATA",SPOOLNO,"TERMPAGE",n)=全てのページで最後に出力するシーケンス群
-------------------------------------------------------------
*** 機種別のダイアログボックスに表示されるプリンタを規定します。
 ^VcomDEF("DEFAULT","LABEL")="winspool^"_DEV_"^"_PORT 
 ^VcomDEF("DEFAULT","MICROLINE")="winspool^"_DEV_"^"_PORT 
 ^VcomDEF("DEFAULT","LaserShot")="winspool^"_DEV_"^"_PORT 
 ^VcomDEF("DEFAULT","OTHER")="winspool^"_DEV_"^"_PORT 
             "LABEL",DEV="SATO MR400e" 
             "DOT",DEV="OKI MICROLINE 8720S" 
             "LaserShot",DEV="Canon LBP-1610" 
             "PR201",DEV="NEC PC-PR201H",PORT="LPT1:" 
*** ルーチン ZVSTDEF にサンプルがあります 
------------------------------------------------------------- 
*** 全プリンタ番号とデバイスを規定します。 
 ^VcomLP2(0)=[1]端末経由プリンタ^[2]cacheデバイス名^^^ 
 ^VcomLP2(n)=[1]プリンタ名^[2]cacheデバイス名^^^[5]プリンタ名 
     ^[6]プリンタドライバー名^[7]ポート名^[8]プリントプロセッサ 
*** 0 以外は自動設定されます。(Gコマンド) 
      Device=$$PSelect^ZVSOUTP(splno) で使用されます 
------------------------------------------------------------- 
■印刷管理データ格納関数 
 
 [1]スプールオープン(ワークグローバルを作成開始) 
    新たにスプールを出力する為にスプール番号を取得し文書情報を設定する 
 
     %PID <--- プログラムID 
     title <--- 帳票タイトル 
     psize <--- 用紙サイズ 
     pdir  <--- 用紙方向 
     seqtype <--- シーケンスタイプ(ESCP,PR201,LABEL,VCOM...) 
                 ESC/PのプリンタはESCPまたはESC/Pとしなければいけません。 
                 VCOMは、VCOM汎用印刷エンジンのシーケンス 
                 LABELは、SATOのラベルプリンタを意味します 
     device <---- 装置名(LBP-1610,LASERSHOT,MT400,MT410,MICROLINE 8720SE) 
     cmnt <------ コメント 
     dpi  <------ 解像度(DPI)(コメント情報) 
     splno=$$VsOPEN^ZVSSPL(%PID,title,psize,pdir,seqtype,device,cmnt,dpi) 
     splno --> スプール番号 
 
  [2]スプールクローズ(ワークグローバルを作成終了) 
     状態をクローズに変更する 
 
     splno <---- スプール番号 
     ret=$$VsCLOSE^ZVSSPL(splno) 
 
  [3]スプール番号を削除(ワークグローバルを削除) 
     スプールデータを削除する(再出力は出来なくなります) 
 
     splno <---- スプール番号 
     ret=$$DELETE^ZVSSPL(splno) 
 
  [4]強制クローズ(ワークグローバルを作成終了) 
 
     splno <---- スプール番号 
     ret=$$TOCLOSE^ZVSSPL(splno) 
 
  [5]スプールデータを出力(ワークグローバルに出力) 
 
     splno <---- スプール番号 
     page <--- 頁番号(1,2,3,...) 
     y    <--- 行位置(1,2,3,...) 
     x    <--- 桁位置(1,2,3,...) 
     string <-- 出力文字列(シーケンスを含まない) 
     ret=$$WRITE^ZVSSPL(splno,page,y,x,string) 
 
  [6]前シーケンスを出力(ワークグローバルに出力) 
 
     splno <---- スプール番号 
     page <--- 頁番号(1,2,3,...) 
     y    <--- 行位置(1,2,3,...) 
     x    <--- 桁位置(1,2,3,...) 
     string <-- 文字列出力の前に付加するシーケンス 
     ret=$$PUTSEQ1^ZVSSPL(splno,page,y,x,string) 
 
  [7]後シーケンスを出力(ワークグローバルに出力) 
 
     splno <---- スプール番号 
     page <--- 頁番号(1,2,3,...) 
     y    <--- 行位置(1,2,3,...) 
     x    <--- 桁位置(1,2,3,...) 
     string <-- 文字列出力の後に付加するシーケンス 
     ret=$$PUTSEQ2^ZVSSPL(splno,page,y,x,string) 
 
  [8]スプールデータとシーケンスを出力(ワークグローバルに出力) 
 
     splno <---- スプール番号 
     page <--- 頁番号(1,2,3,...) 
     y    <--- 行位置(1,2,3,...) 
     x    <--- 桁位置(1,2,3,...) 
     str1 <-- 文字列出力の前に付加するシーケンス 
     str2 <-- 出力文字列(シーケンスを含まない) 
     str3 <-- 文字列出力の後に付加するシーケンス 
     ret=$$WRITE3^ZVSSPL(splno,page,y,x,str1,str2,str3) 
 
  [9]文書毎の初期化シーケンスを出力(ワークグローバルに出力) 
 
    *** 途中のページから出力が開始されてもプリンタに出力される 
 
     splno <---- スプール番号 
     string <--  出力シーケンス 
     ret=$$INITDOC^ZVSSPL(splno,string) 
 
  [10]頁毎の初期化シーケンスを出力(ワークグローバルに出力) 
 
    *** 全てのページに同じシーケンスがプリンタに出力される 
 
     splno <---- スプール番号 
     string <--  出力シーケンス 
     ret=$$INITPAGE^ZVSSPL(splno,string) 
 
  [11]給紙モードの選択(ワークグローバルの情報領域に設定)[ESCPのみ] 
        *** vcomでは使用出来ない *** 
     splno <---- スプール番号 
     n <--  給紙モード (0:自動給紙,1:トレイ給紙,2:上段カセット,3:下段) 
     ret=$$PAPERSEL^ZVSSPL(splno,n) 
 
  [12]ページフォーマット(ワークグローバルの情報領域に設定) 
 
     splno <---- スプール番号 
     n <--  ページフォーマット 
           P:縦   L:横  ---> [VCOMの場合] 
    [以下ESCPのみ] 
  1:原寸縦,2:原寸横,3:10x11をA4に縮小,4:15x11をA4に縮小,6:15x11をB4に縮小 
           7:B4->A4縦,8:B4->A4横 
     ret=$$PAGEFORM^ZVSSPL(splno,n) 
 
  [13]用紙サイズ(ワークグローバルの情報領域に設定) 
 
     splno <---- スプール番号 
     n <--  用紙サイズ("A4","B4","B5","A5") ---> [VCOMの場合] 
    [以下ESCPのみ] 
     n <--  用紙サイズ 
       (0:A4,1:B4,2:B5,3:A5,4:はがき,5:A3,c:セットした用紙サイズ) 
     ret=$$PAPERSIZE^ZVSSPL(splno,n) 
 
  [14]頁桁数行数(コメント情報)(ワークグローバルの情報領域に設定) 
 
     splno <---- スプール番号 
     lines <---  行数 
     columns <--- 桁数 
     ret=$$PAGESIZE^ZVSSPL(splno,lines,columns) 
 
  [15]全角半角2:1で出力するモード(ワークグローバルの情報領域に設定)[ESCPのみ] 
        *** vcomでは使用出来ない *** 
     splno <---- スプール番号 
     ret=$$ZENHAN21^ZVSSPL(splno) 
 
  [16]位置ずけのオプション(ワークグローバルの情報領域に設定)[ESCPのみ] 
        *** vcomでは意味が異なる *** 
     splno <---- スプール番号 
     opt   <---- オプション(1:漢字の1/2の単位で桁位置を設定する) 
                vcomでは0以外の時、X、Yの値を利用して自動的に位置を 
                ^ZVSOUTP が設定する 0 又は未定義の時は 自分で位置設定 
                シーケンスを出力する[25-JAN-2002] 
     ret=$$LOCATEOPT^ZVSSPL(splno,opt) 
 
  [17]文書毎の終了シーケンスを出力(ワークグローバルに出力) 
 
    *** 途中のページから出力が開始されてもプリンタに出力される 
 
     splno <---- スプール番号 
     string <--  出力シーケンス 
     ret=$$TERMDOC^ZVSSPL(splno,string) 
 
  [18]頁毎の終了シーケンスを出力(ワークグローバルに出力) 
 
    *** 全てのページに同じシーケンスがプリンタに出力される 
 
     splno <---- スプール番号 
     string <--  出力シーケンス 
     ret=$$TERMPAGE^ZVSSPL(splno,string) 
 
---------------------------------------------------------------------------- 
 ■印刷管理ジョブ関数 
 
  [1]プリンタ選択 
 
      Device=$$SELECT^ZVSOUTP() 
 
     Device ---> プリンタデバイス名(LPOPENで使用) 
                *** vcom経由の場合は、0 *** 
     *** ^VcomLP が参照されます(適切に設定してください) *** 
 
  [2]印刷プリンタオープン 
 
      splno <---- スプール番号 
      Device <--- プリンタデバイス名(LPOPENで使用) 
                 0 の場合は、端末に接続されたデフォルトプリンタ 
      ret=$$PROPEN^ZVSOUTP(splno,Device) 
      ret ---> 0:正常にオープン 1:プリンタ使用中 2以降:reserved 
 
  [3]印刷プリンタクローズ 
 
      splno <---- スプール番号 
      Device <--- プリンタデバイス名(LPOPENで使用) 
                *** vcom経由の場合は、0を指定する *** 
      ret=$$PRCLOSE^ZVSOUTP(splno,Device) 
      ret ---> 1:正常にオープン 0:既に使用中のスプール番号等のエラー 
 
  [4]全頁印刷 
 
      splno <---- スプール番号 
      Device <--- プリンタデバイス名(LPOPENで使用) 
                *** vcom経由の場合は、0を指定する *** 
      ret=$$ALLPAGE^ZVSOUTP(splno,Device) 
      ret ---> 出力ページ数(エラーの時は0) 
 
  [5]範囲指定頁印刷 
 
      splno <---- スプール番号 
      Device <--- プリンタデバイス名(LPOPENで使用) 
                *** vcom経由の場合は、0を指定する *** 
      from   <--- 印刷開始頁番号 
      to     <--- 印刷終了頁番号 
      ret=$$FROMTO^ZVSOUTP(splno,Device,from,to) 
      ret ---> 出力ページ数(エラーの時は0) 
 
  [6]指定頁印刷 
 
      splno <---- スプール番号 
      Device <--- プリンタデバイス名(LPOPENで使用) 
                *** vcom経由の場合は、0を指定する *** 
      page   <--- 頁番号 
      ret=$$ONEPAGE^ZVSOUTP(splno,Device,page) 
      ret ---> 出力ページ数(エラーの時は0) 
 
  [7]プリンタ選択と印刷ダイアログボックス選択[08-feb-2002]追加 
 
      splno <---- スプール番号 
      Device=$$PSelect^ZVSOUTP(splno) 
 
      Device ---> プリンタデバイス名(LPOPENで使用) 
                *** vcom経由の場合は、0 *** 
      CODE   ---> 選択された^VcomLP2(CODE)の添え字の値 
                *** ^VcomLP2 は、ZVSJOBのGコマンドで自動生成されます *** 
------------------------------------------------------------- 
■使用上の注意 
 
  [1]基本的に,ESC/Pのプリンタを対象としていますが、ラベルプリンタも 
     その他のプリンタ(PR201)も利用が可能です。 
 
  [2]行(y)の位置ずけは、yの値の差分だけ改行を出力する方法です。 
     1行のデータが長すぎて自動改行してしまうと行位置がずれてしまいます。 
 
  [3]桁(x)位置の位置ずけは、オプション設定等により方法が異なります。 
 
     (A)ESC/Pプリンタの場合は、現在の10CPI,12CPI,15CPI,縮小、倍幅拡大の 
        設定の文字幅を単位として位置ずけます。 
     (B)1:漢字の1/2の単位で桁位置を設定するになっている場合 
        半角(ANKでない)の位置で位置が決定されます。 
        このモードでは、位置ずけに復改と連続した空白が使用されますので 
        ネットワーク転送時間が多くかかります。 
        データが1バイトデータ(.ANPK)のみの場合に半角に変換されて印字されます。 
     (C)ESC/PプリンタでANKの位置で桁位置を設定するになっている場合 
        このモードでは、位置ずけに復改とタブ設定とタブが使用されますので 
        マージン設定などをすると位置が期待した所に行かない場合があります。 
        ネットワーク転送データ量は少なくなします。 
        ANKと漢字の幅の比率は、1:1.5ですのでそれを考慮して使用してください。 
     (D)ESC/Pプリンタでない場合は、位置ずけに復改と連続した空白が使用されますので 
        ネットワーク転送時間が多くかかります。 
 
  [4]ESC/Pで且つ機種がLPB-xxxxまたはLASERSHOTの場合は、用紙サイズ、給紙モード 
     ページフォーマットの設定が有効となります。 
 
  [5]ESC/Pプリンタと認識するのはシーケンスタイプに ESCP 又は ESC/P を含んで 
     いる場合です。 
 
  [6]桁(x)位置を 1 のみ利用する方法も可能ですが、印字位置の設定は自分で 
     行う必要があります。 
 
  [7]行(y)位置が 0 以下の場合改行動作がされません。 
     頁番号は整数で1から使用してください。 
 
  [8]現在では、VCOM汎用印刷エンジンに対応していません 
     対応する場合は、デスプーラの機能追加と各インターフェイスの変更が 
     おきます。また上記モードの場合は、Canon LaserShot の動作モードは 
     LIPS であれば転送効率が良くなります。ESC/Pの場合はページ毎 
     ビットマップ転送となりますので遅くなることが考えられます。 
---------------------------------------------------------- 
■印刷管理ジョブ(デスプーラ) 
 
    D ALLDSP^ZVSJOB --> スプール番号リスト表示選択(最新から全件表示)と出力 
 
    D TODDSP^ZVSJOB --> スプール番号リスト表示選択(本日作成分のみ表示)と出力 
────────────────────────────────
◆印刷管理ジョブ(ZVSJOB)画面イメージ
印刷管理ジョブ(第一画面)
印刷管理ジョブ(第二画面)
──────────────────────────────── 
*** 帳票、ページを指定して再出力する機能を有する 
*** スプールファイルの削除機能も含む(状態変更) 
*** プリンタにより受け付けるシーケンスが異なりますので作成時の機種と出力先の 
    機種が一致しない場合は誤動作します。 
*** 出力プリンタが 0 の場合は、端末に接続されたデフォルトプリンタとなりますが 
    refrection-2では、ESC/PやVCOM汎用印刷エンジンのシーケンスが使用できなくなります。 
    vcomの場合は設定で可能となります。 
*** ESC/P や LaserShotでは規約どうりにワークグローバルを作成しておけば 
    印刷プレビューが利用出来ます。 
    しかしながら、罫線やフォント変更は反映されません。 
*** 印刷履歴表示機能があります。 
*** 一定期間を経過したスプールファイルを削除する機能。 
---------------------------------------------------------------------------- 
---------------------------------------------------------- 
■<<<使用上の注意点>>> 
  [1]デバイスの通称(型番) 
 
     装置名(LBP-1610,LASERSHOT,LABEL,MICROLINE 8720SE) 
    ここで適切な文字列を設定しないと誤動作の原因となります。 
 
  [2]制御シーケンスタイプ 
 
     シーケンスタイプ(ESCP,PR201,LABEL,VCOM...) 
                 ESC/PのプリンタはESCPまたはESC/Pとしなければいけません。 
                 VCOMは、VCOM汎用印刷エンジンのシーケンス 
                 LABELは、SATOのラベルプリンタを意味します 
    ここで適切な文字列を設定しないと誤動作の原因となります。 
 
  [3]用紙サイズ(制御シーケンスによって異なります) 
 
    ESC/Pでは 
       用紙サイズ(0:A4,1:B4,2:B5,3:A5,4:はがき,5:A3,c:セットした用紙サイズ) 
    VCOM汎用印刷エンジンでは、 
       用紙サイズ(A4,B4,B5,A5) 
 
  [4]ページフォーマット(制御シーケンスによって異なります) 
 
     ページフォーマット(ESC/PでもVCOMでも可) 
         P:縦   L:横 
     以下に記載されたコードはESC/Pのみ有効です 
         1:原寸縦,2:原寸横,3:10x11をA4に縮小,4:15x11をA4に縮小, 
         6:15x11をB4に縮小 
         7:B4->A4縦,8:B4->A4横 
─────────────────────────────────────
              3-1
     |目次前ページ次ページ