OpenVMS
システム管理者マニュアル


前へ 次へ 目次 索引


14.6.7.6 キューへのフォームのマウント

キューへのフォームのマウントは,INITIALIZE/QUEUE,START/QUEUE, SET QUEUE のいずれかのコマンドに,次の形式で /FORM_MOUNTED 修飾子を使用することによって行います。


INITIALIZE/QUEUE/FORM_MOUNTED= タイプ 

タイプはDEFINE/FORM コマンドで定義されるフォーム名または番号です。

ストックが一致しないためにプリント・ジョブが保留状態になっている場合には,プリンタのストックを要求されたストックに変更し,要求されたストックに関連付けられたフォームをキューにマウントするか,または 第 14.8.2.1 項 で説明している他のいずれかの処理を実行します。

14.6.7.7 フォームの削除

定義済みのフォームを削除する場合は,次の例に示すように DCL の DELETE/FORM コマンドを使用します。


$ DELETE/FORM MEMO

DELETE/FORM コマンドには,フォーム番号ではなく,フォーム名を指定する必要があります。フォーム番号は分かっているが,フォーム名が分からないという場合は, SHOW QUEUE/FORM コマンドを使用して,システムに定義されているフォーム名とフォーム番号を調べることができます。

キューまたはジョブがフォームを参照している場合,システムからは次のメッセージが返されます。


%DELETE-E-NOTDELETED, error deleting form-name
-JBC-E-REFERENCED, existing references prevent deletion 

フォームを削除するためには,フォームに対する参照をすべて削除しておく必要があります。フォームに対する参照の削除については, 第 14.8.5 項 を参照してください。

14.6.7.8 ページあふれ制御オプションと行あふれ制御

プリント・シンビオントが整形しても,行やページの長さがプリンタの行幅やページ長を超えることがあります。そうした場合は,キュー・オプションを使用して,行あふれやページあふれを制御することができます。

行あふれの制御

行あふれは,フォーム定義で制御することをおすすめします。このためには,物理的な装置幅の限界に達する前に行送りや行切り詰めを行わないよう,ターミナルとプリンタを設定する必要があります。

注意

プリント・シンビオントはフォームに基づいて行幅を決定します。プリント・シンビオントがデータの書式整形を終えた後,行幅が装置の/WIDTH 設定より広い場合は, /TRUNCATE か /WRAP オプションが設定されていればその設定を使用して,デバイス・ドライバは行の切り詰めか行送りを行います。

左右と上下マージンの設定は,フォームごとに変えることができます。そしてユーザは,フォームを使ってページあふれと行あふれを制御することにより,別のフォームに切り換えることができます。このときオペレータがキューを停止させて,装置の設定を変更し,再度キューを起動させるという必要はありません。キュー・マネージャは,現在マウントされているフォームと同じストックを使って自動的に任意のフォームをマウントします。オペレータ支援が必要になるのは,現在マウントされているフォームのストックと,異なるストックのフォームをマウントする場合だけです。詳細は 第 14.8.2.1 項 を参照してください。

行あふれを制御したい場合は,DCL の DEFINE/FORM コマンドでフォームを作成するときに, 表 14-3 で説明されている /[NO]TRUNCATE と /[NO]WRAP の修飾子を指定します。

ページあふれ

ページあふれを制御する場合は,INITIALIZE/QUEUE,START/QUEUE,または SET QUEUE コマンドで /DEFAULT=[NO]FEED 修飾子を使用します。この修飾子は,シンビオントがデータの下マージン部分へのあふれを検出したときに,改ページ文字を自動的に挿入するかどうかを制御します。ユーザは,PRINT/FEED または PRINT/NOFEED コマンドを使用して,キューに指定された改ページ・オプションの省略時の設定を変更できます。

ユーザはまた,PRINT コマンドに /PASSALL 修飾子を指定して,プリント・シンビオントが行うあらゆるフォーマッティング処理(改行を含む)をバイパスできます。省略時の設定は /NOPASSALL です。 /PASSALL 修飾子は,プリント・シンビオントによるフォーマッティングが希望するフォーマッティングと異なる場合に使用してください。 /PASSALL 修飾子を使用すると,すべてのフォーマッティングを上書きして,プリント・シンビオントはデバイス・ドライバに入出力を送ります。

14.6.7.9 初期改ページの抑制

プリント・キューを開始すると,改ページが出力装置に送られて,印刷が始まる前に,用紙がページの一番先頭にくるように設定されます。初期改ページのために,キュー開始時に,空白のページが印刷されます。

初期改ページを実行しないようにするには,INITIALIZE/QUEUE, SET QUEUE,START/QUEUE コマンドのいずれかに /NO_INITIAL_FF 修飾子を指定します。

14.6.8 装置制御ライブラリ

装置制御ライブラリは,ユーザが作成したテキスト,またはエスケープ・シーケンスのモジュールから構成されるテキスト形式のライブラリです。 装置制御ライブラリ・モジュールを使用すると,次の操作を実行できます。

装置制御モジュールは次の 3 種類あり,それぞれプリント・ジョブ内での位置によって区別されます。

モジュール・タイプ 説明
SETUP モジュール ファイルの先頭に挿入。
PAGE_SETUP モジュール 各ページの先頭に挿入。
RESET モジュール 各ジョブの終わりに挿入。ジョブの最後でプリンタを既知状態に再設定するときに使用する。

作業方法

装置制御ライブラリ・オプションを使用する手順は次のとおりです。

  1. ライブラリを作成して,モジュールを登録する。

  2. キューに装置制御ライブラリを割り当てる。省略時のライブラリ名 SYSDEVCTL.TLB を使用する場合,このステップは必要ない。

  3. 設定またはページ設定モジュールを指定して,フォームを作成する。

  4. キューに再設定モジュールを割り当てる。

プリント・ジョブを処理するためのコマンド

プリント・ジョブを処理するために,装置制御ライブラリ・モジュールをセットアップするコマンドを次に示します。

コマンド 説明
DEFINE/FORM/SETUP ジョブの各ファイルの先頭に,装置を設定する 1 つ以上のモジュールを指定する。
DEFINE/FORM/[NO]PAGE_SETUP ジョブの各ページの先頭に,装置を設定する 1 つ以上のモジュールを指定する。
INITIALIZE/QUEUE/LIBRARY
START/QUEUE/LIBRARY
装置制御ライブラリのファイル名を指定する。
INITIALIZE/QUEUE/SEPARATE=[NO]RESET
START/QUEUE/SEPARATE=[NO]RESET
SET QUEUE/SEPARATE=[NO]RESET
キューのジョブ・リセット・シーケンスを格納した 1 つ以上の装置制御ライブラリ・モジュールを指定する。
PRINT/FORM プリント・ジョブに関連付けたフォームの名前または番号を指定する。

14.6.8.1 装置制御モジュールの出力順序

装置制御モジュールは,次の順序でプリンタに送られます。

  1. キューに割り当てられた再設定モジュール (再設定モジュールは,キュー起動後に最初のジョブをプリントしたこの時点で初めて使用される。)

  2. フォーム定義に指定された設定モジュール

  3. フォーム定義に指定されたページ設定モジュール

  4. PRINT コマンドで指定された設定モジュール

  5. ファイル 1 の 1 ページ目

  6. フォーム定義に指定されたページ設定モジュール

  7. ファイル 1 の 2 ページ目以降

  8. フォーム定義に指定されたページ設定モジュール

  9. ファイル 1 の最終ページ

  10. フォーム定義に指定された設定モジュール

  11. フォーム定義に指定されたページ設定モジュール

  12. PRINT コマンドで指定された設定モジュール

  13. ファイル 2 の 1 ページ目

  14. フォーム定義に指定されたページ設定モジュール

  15. ファイル 2 の 2 ページ目以降

  16. フォーム定義に指定されたページ設定モジュール

  17. ファイル 2 の最終ページ

  18. キューに割り当てられた再設定モジュール

以降の節では,装置制御ライブラリの管理方法を説明します。

14.6.8.2 装置制御ライブラリの作成とモジュールの登録

装置制御ライブラリの作成とモジュールの登録は,次の手順で行います。

  1. 次の形式で LIBRARY/CREATE コマンドを入力して,装置制御ライブラリを作成する。


    LIBRARY/CREATE/TEXT    SYS$COMMON:[SYSLIB]   ファイル名.TLB 
    

  2. モジュールの内容,すなわち,登録するテキスト,または目的のプリンタの設定に必要なエスケープ・シーケンスを決定する。プリンタ・オプションの正しいエスケープ・シーケンスを確認したい場合は,目的のプリンタの操作手引書を参照すること。

  3. モジュール・ファイルを作成して,エスケープ・シーケンス,キャリッジ制御文字,テキストを入力する。モジュール・ファイルの作成および編集方法は,通常のテキスト・ファイルを作成および編集する方法と同じである。ファイルの最後にキャリッジ・リターンや行送りが入らないようにすること。そうした文字が入ると,プリンタの出力に影響する。

  4. 次の形式の LIBRARY/INSERT コマンドを入力して,装置制御ライブラリに作成したモジュールを登録する。


    LIBRARY/INSERT/TEXT   ライブラリ・ファイル   モジュール・ファイル 
    

注意

ライブラリに対するモジュールの登録または削除は,ライブラリに割り当てられているすべての出力キューを停止してから行う必要があります。

ライブラリの作成とモジュールの登録のさらに詳しい内容については,『OpenVMS Command Definition, Librarian, and Message Utilities Manual』を参照してください。

14.6.8.3 キューへのライブラリの割り当て

装置制御ライブラリをキューに割り当てるためには, INITIALIZE/QUEUE か START/QUEUE コマンドに,次の形式で /LIBRARY 修飾子を指定します。


INITIALIZE/QUEUE/LIBRARY=ファイル名   キュー名 

ファイル名は,使用したいモジュールが入っているライブラリ・ファイル名です。

ライブラリは SYS$LIBRARY に存在し,ファイル・タイプが .TLB である必要があります。/LIBRARY 修飾子が省略された場合は,省略時のライブラリのSYS$LIBRARY:SYSDEVCTL.TLB になります。これ以外の装置制御ライブラリを使用する場合は,次の例に示すように /LIBRARY 修飾子を使用してください。


$ INITIALIZE/QUEUE/LIBRARY=LN03DEVCTL LN03_A_QUE

注意

/LIBRARY 修飾子を使用する場合,ディレクトリ,ファイル・タイプ,バージョン番号は指定しないでください。システムは,ファイルが SYS$LIBRARY に存在し,タイプが.TLB であると見なします。別のノードのライブラリ・ファイルをコピーして使用する場合は,必ず一意のファイル名を付けてください。

特定の装置制御ライブラリ・モジュールが必要な操作では,キューに指定されたライブラリの該当するモジュールが使用されます。ライブラリを使用する場合には,次のガイドラインに従ってください。


3 つのライブラリに横長方向にプリンタを設定するモジュールが格納されている場合,これらのモジュールには 3 つのすべてのライブラリで LANDSCAPE という名前を付けます。このようにしておくと,それぞれのモジュールには異なる装置固有のシーケンスが格納されますが,ライブラリに指定した名前のモジュールが格納されているどのキューに対しても,同じフォームを使用できます。

特定のライブラリに格納されているすべてのモジュールを表示するには,次のコマンドを使用します。


LIBRARY/LIST/FULL SYS$LIBRARY: ライブラリ名 .TLB 

14.6.8.4 設定モジュールとページ設定モジュールを使用したフォームの定義

キューに対して設定モジュールまたはページ・セットアップ・モジュールを指定するためには,DEFINE/FORM コマンドに /SETUP=モジュール修飾子,または/PAGE_SETUP=モジュール修飾子を指定します。 /SETUP 修飾子に指定したモジュールは,ジョブの各ファイルのプリント前,フォームがマウントされたときにプリンタに送られます。同様に,/PAGE_SETUP 修飾子に指定したモジュールは,ジョブの各ページのプリント前にプリンタに送られます。

ユーザは,PRINT コマンドに次のいずれかの修飾子を指定することにより,モジュールを要求できます。

14.6.8.5 キューへの再設定モジュールの割り当て

出力実行キューにモジュールを割り当て,各ジョブの最後にプリンタを既知状態に再設定したい場合は,次の例に示すように, INITIALIZE/QUEUE,START/QUEUE,SET QUEUE のいずれかのコマンドに, /SEPARATE=RESET=モジュール  修飾子を使用します。

/SEPARATE 修飾子は必須キュー・オプションを指定するため,指定された RESET モジュールは,あらゆるジョブの最後にキューに送られます。ユーザがこのオプションを変更することはできません。


次の例では,モジュールに含まれている再設定シーケンスにより,各ジョブの最後でプリンタは再設定されます。また,最初のジョブが正しくプリントされるよう,この再設定はキューの起動時にも行われます。


$ INITIALIZE/QUEUE/LIBRARY=MYDEVCTL/SEPARATE=RESET=MODULE2 PDQ_QUE

次は,装置制御ライブラリ・モジュールを使用して,プリント・ジョブを処理している例です。この例では,MODULE1 と MODULE2 という 2 つの装置制御モジュールを作成して,それを MYDEVCTL.TLB ライブラリ・ファイルに登録しています。 MODULE1 設定モジュールのエスケープ・シーケンスまたはテキストは, REPORT.TXT のプリント前とMEMO.TXT のプリント前にプリンタに送られ,プリンタを設定します。また, MODULE2 設定モジュールのエスケープ・シーケンスまたはテキストは, REPORT ジョブの両方のファイルがプリントされた後の一度だけプリンタに送られます。


$ LIBRARY/CREATE/TEXT SYS$LIBRARY:MYDEVCTL.TLB
$ EDIT MODULE1.TXT
    !enter printer escape sequences or text for module1
$ EDIT MODULE2.TXT
    !enter printer escape sequences or text for module2
$ LIBRARY/INSERT SYS$LIBRARY:MYDEVCTL.TLB/TEXT MODULE1
$ LIBRARY/INSERT SYS$LIBRARY:MYDEVCTL.TLB/TEXT MODULE2
$ INITIALIZE/QUEUE/START/ON=TTA9:/LIBRARY=MYDEVCTL PDQ_QUE
$ SET QUEUE/SEPARATE=RESET=MODULE2 PDQ_QUE
$ SHOW QUEUE/FULL PDQ_QUE
Terminal queue PDQ_QUE, idle on TOAD::TTA9, mounted form DEFAULT
   /BASE_PRIORITY=4/DEFAULT=(FEED,FORM=DEFAULT)/LIBRARY=MYDEVCTL
   /OWNER=[1,4]/PROTECTION=(S:M,O:D,G:R,W:R)/SEPARATE=(RESET=(MODULE2))
$ DEFINE/FORM/SETUP=MODULE1/STOCK=DEFAULT FORM1 1
 
$ PRINT/FORM=FORM1 REPORT.TXT,MEMO.TXT/QUEUE=PDQ_QUE
 
Job REPORT (Queue PDQ_QUE, entry 619) started on PDQ_QUE


前へ 次へ 目次 索引