DISPLAY(表示)文

DISPLAY(表示)文は、指定されたデータ項目のデータをCRT画面のような適切なハードウエア装置に転送させる。

DISPLAY文はまた、プログラムからCRTまたはビデオ端末画面上の静止型定形画面にデータを転送して表示させる。表示されたその画面を、入力画面とすることができる。

一般形式

形式 1

形式 2

形式 3

構文規則

形式 1
  1. 呼び名は、環境部の特殊名段落中の機能名と関連させる。有効な機能名に関しては、環境部の章の特殊名段落節の中の「一般規則 9」を参照。

  2. 機能名に関連する呼び名の代わりに、機能名そのものを使用できる。

  3. 各定数には、ALL以外の表意定数を使用できる。

  4. 定数が数字の場合は、符号の付かない整数とする。

    この制限は無視してよい。

  5. 呼び名がARGUMENT-NUMBERに関連しているときは、使用される一意名-1または定数-1は、それぞれ符号の付かない整数または符号の付かない整数定数として、定義されているデータ項目を指さなければならない。この場合、単一の一意名-1または定数-1だけを使用でき、WITH NO ADVANCING指定は使用できない。

  6. 呼び名がENVIRONMENT-NAMEまたはENVIRONMENT-VALUEと関連するときは、使用される一意名-1または定数-1は、それぞれ英数字データ項目または文字定数を指さなければならない。この場合、単一の一意名-1または定数-1だけを使用でき、WITH NO ADVANCING指定は使用できない。

  7. ON EXCEPTION指定およびNOT ON EXCEPTION指定は、呼び名がENVIRONMENT-NAMEまたはENVIRONMENT-VALUEと関連している場合にだけ指定できる。
形式 2
  1. 画面名は、OCCURS句を伴う項目であってはならない。

形式 2 および 3
  1. LINE指定とCOLUMN指定は、どのような順番で書いてもよい。

  2. 整数-3および整数-4の長さは、4バイトまたは6バイトとする。

形式 3
  1. 作用対象が画面名でないDISPLAY文は、その中にAT指定、CRTオプションまたはCRT-UNDERオプションを伴うUPON指定、MODE IS BLOCK指定が含まれるか、またはUPON指定は含まれないが特殊名段落中にCONSOLE IS CRT句が指定されていると、形式 3として扱われる。CONSOLEオプションを伴うUPON指定が含まれるか、またはUPON指定が含まれず特殊名段落中にCONSOLE IS CRT指定も指定されていないと、この形のDISPLAY文は形式 1として扱われる。

  2. 一意名に続くいろいろな指定は、どんな順番で書いてもよい。

  3. 一意名-1内の基本データ項目の用途は、DISPLAYとする。

  4. 一意名-1内の非基本データ項目は、8191バイトより大きくなることがある。MODE IS BLOCK句を使用した場合、一意名-1の全体の長さは8191バイト以下にすること。

  5. DISPLAYの後に2つ以上の一意名-1が続く場合、WITH指定はその直前にある作用対象だけに適用される。

一般規則

形式 1
  1. DISPLAY文の作用対象の用途がDISPLAY以外であるかまたは符号が独立していないと、その作用対象は、用途がDISPLAYで符号が独立したものに変換される。変換後の大きさが、その作用対象の大きさとされる。

  2. 作用対象の1つとして表意定数を指定すると、その表意定数が1文字だけ表示される。

  3. 機能名 COMMAND-LINEまたはそれに関連する呼び名を指定すると、データはシステムのコマンド行バッファに上書きされる。この後、ACCEPT FROMCOMMAND-LINE文を実行することによって、このデータを読み出すことができる。この場合は、作用対象は1つだけ指定できる。

    使用可能なそれ以外の機能名はすべて、CONSOLEに等しいものとして扱われ、各作用対象は、指定された順番に操作卓装置に転送される。表示されるデータの全体の大きさは、各作用対象の大きさの和に等しい。表示は現在カーソルが位置している所から開始され、必要があれば、以降の行に繰り越される。

    以前のリリースでは、最後の作用対象に続く空白は表示されなかった。

  4. NO ADVANCINGを指定すると、カーソルは最後の文字が表示された次の位置に残される。NO ADVANCINGを指定しないと、カーソルは次の行の先頭に位置付けられる。カーソルが行頭にあるときは、いつでもスクロールできる。

  5. 機能名ARGUMENT-NUMBERに関連する呼び名を指定すると、機能名ARGUMENT-VALUEに関連する呼び名を伴う後続のACCEPT用の位置は、指定されたコマンド行の引数を読み出すように設定される。一意名-1または定数-1に関連する値が0より小さいか、99より大きいか、コマンド行上の引数の合計数よりも大きいと、結果はどうなるかわからない。

  6. 機能名ENVIRONMENT-NAMEに関連する呼び名を指定すると、機能名ENVIRONMENT-VALUEに関連する呼び名を伴う後続のACCEPTまたはDISPLAY中で読み取るかまたは設定すべき変数が、定数-1または一意名-1の内容として指定された変数名に設定される。ON EXCEPTION指定は、指定されていても実行されない。したがって、ENVIRONMENT-VALUEに関連する後続のACCEPTまたはDISPLAY用のENVIRONMENT-NAMEを設定しようとしている最中に問題が発生した場合、ON EXCEPTION条件の検出は、後続のACCEPTまたはDISPLAYの中で行なわなければならない。

  7. 機能名ENVIRONMENT-VALUE に関連する呼び名を使用すると、下記のようになる。

    1. ENVIRONMENT-NAMEに関連する呼び名を伴うDISPLAYが前に実行されていると、一意名の値が指定された環境変数に入れられる。

    2. ENVIRONMENT-NAMEに関連する呼び名を伴うDISPLAYが前に実行されていないと、またはACCEPTに関しては指定された環境変数が存在しないと、またはDISPLAYに関して環境変数を格納するために割り当てられる領域が足りないと、ON EXCEPTION指定に対応する無条件文が実行される。この場合、一意名中の値はどうなるかわからない。

  8. 機能名SYSERRに関連する呼び名を使用すると、DISPLAYはCONSOLEに対するように行われるが、出力はすべてシステムの標準エラー装置に向けられる。

  9. DISPLAY UPON ENVIRONMENT-VARIABLEを実行するときは、後に続く空白も値のうちに含められる。これを避けたければ、INSPECT REPLACING ALL SPACES BY LOW-VALUESを使用する。

  10. 一意名-1においては、内部浮動小数点数は表示用の外部浮動小数点数に変換される。その結果、下記のようになる。

    1. COMP-1項目は外部浮動小数点数用のPICTURE句-.9(8)E-99が指定されているように表示される。

    2. COMP-2項目は外部浮動小数点数用のPICTURE句-.9(18)E-99 が指定されているように表示される。(このPICTURE文字列を実際に明示的に使用するとまちがいとなる。)

  11. 定数-1においては、浮動小数点数定数が許される。
形式 2
  1. この書き方のDISPLAY文を実行すると、プログラムの画面節内に定義されている画面項目が表示され、拡張画面操作機能によって全面的に取り扱えるようになる。

形式 2 および 3
  1. AT指定は、DISPLAY処理を開始する画面上の絶対番地を指定する。

  2. DISPLAY文が実行される順序は、つねに下記のとおりである。

    1. AT指定

    2. BLANK指定

    3. BELL指定

    4. DISPLAY処理

  3. 整数-3または整数-4の長さが4桁ならば、上2桁は行を表わし下2桁はカラムを表わす。整数-3または整数-4の長さが6桁ならば、上3桁は行を表わし下3桁はカラムを表わす。

  4. 行番号とカラム番号の組合せの中には、特殊な意味をもつものがある。それらは下記のとおり。

    1. カラムの値が1行のカラム数よりも大きいと、その値から1行のカラム数が差し引かれ、行数に1が加えられる。

    2. 行の値が画面の範囲から外れると、画面が1行上にスクロールされる。この効果は、画面の下端の行を指定したのと同じである。

    3. 与えられた行番号とカラム番号がともにゼロであると、形式 2または 3の前のDISPLAY処理が終わった位置の直後から、DISPLAYが開始される。各行のカラム1は、前の行の最後のカラムに続くものとみなされる。

    4. 指定された行番号がゼロであるがカラム番号はゼロでないと、形式 2または 3の前のDISPLAY処理が終わった位置の次の行の指定されたカラムから、DISPLAYが開始される。

    5. 指定されたカラム番号がゼロであるが行番号はゼロでないと、形式 2または 3の前のDISPLAY処理が終わった位置の次のカラムの指定された行から、DISPLAYが開始される。

形式 3
  1. この文の一部を繰り返し指定して、いくつものデータ項目を表示するようにできる。最初の一意名にAT指定を指定しないと、行1、カラム1から表示が開始される。それ以降に続く各データ項目は、前のデータ項目を表示し終わった後のカーソルの位置から表示が開始される。

  2. MODE IS BLOCK指定を指定しないと、一意名が集団項目であれば、それに属する基本項目で名前がFILLERでないものが表示される。これらの項目はデータ部内で記述されている順に画面上に表示され、集団内のFILLERの長さによって区切られる。この目的では、ある行の最初の位置は、その前の行の最後の位置の直後に続くものとみなされる。

  3. MODE IS BLOCK指定は、一意名を基本項目として扱うように指定する。こうすると、一意名が集団項目であっても、1つの項目として表示される。

  4. WITH指定を用いると、各種のオプションをDISPLAY処理の実行時に指定できる。(これらの指定の説明については、データ部 - 画面節 の章を参照。)

    画面記述句に指定できるオプションの他に、WITH指定にはいくつかのオプションが加えられている。SPACE-FILL, ZERO-FILL, LEFT-JUSTIFY, RIGHT-JUSTIFY, TRAILING-SIGN, UPDATEである。ZERO-FILLには2つの用法があるため、このリストにも画面記述句にも現れている。2番目の用法については、この章で後述する。

    自由方式で、数字および数字編集の画面項目に、データを入力できるようにする構成オプションがある。COBOLでは、非編集数字データ項目は、内部形式でデータを保持することを目的としたものである。自由方式を用いると、このようなデータ項目を画面上に表示できる。 詳細は、ユーザーインターフェイスに関するCOBOL システムのマニュアルを参照。自由方式がとられているときは、データは自動的に下記のように編集されて表示される。

    • 仮想小数点を、終止符で表わす。

    • 符号を、符号文字で表わす(負の数は "-" で、正の数は空白で)。符号は、左端の数字の直前に付けられる。

    • すべての整数文字位置の先行ゼロが抑制される。ただし、最末桁を除く。

    • 左に桁寄せされる。

    SPACE-FILL、ZERO-FILL、LEFT-JUSTIFY、RIGHT-JUSTIFY および TRAILING-SIGNの各オプションは、上記の形式を補正する。

  5. 一意名-1に表意定数を指定すると、次のような特別な効果がある。SPACEを指定すると、指定したカーソル位置から画面の末尾までがクリアされる。LOW-VALUEを指定すると、指定した位置にカーソルが移動される。ALL X"01" を指定すると、指定したカーソル位置からその行の末尾までがクリアされる。ALL X"02" を指定すると、画面全体がクリアされる。ALL X"07" を指定すると、警報が鳴らされる。一意名に上記以外の表意定数を指定し、SIZEオプションを指定しないと、その表意定数の値が1つ表示される。

  6. 特別の効果をもたない表意定数にSIZEオプションを指定すると、その表意定数の値がSIZE分の長さだけ表示される。ただし、行末から次の行頭へ表示が繰り越されるときは、表意定数の最初から表示し直される。

  7. FOREGROUND-COLORオプションを指定すると、画面全体がこの表示によってクリアされた場合にだけ、指定した色が省略時解釈の前景色となる。画面全体がクリアされるのは、BLANK SCREEN オプションを指定した時、または一意名-1 が SPACES で表示が行1、カラム 1から始まる時である。

  8. BACKGROUND-COLORオプションを指定すると、画面全体がこの表示によってクリアされた場合にだけ、指定した色が省略時解釈の背景色となる。

  9. 一意名-1にREDEFINESがかかっている場合、再定義データ領域の最初の記述が使用され、以降の記述は無視される。OCCURSまたは入れ子になったOCCURSが指定されている場合、反復されるデータ項目はその反復回数分展開される。したがって、1つの定義が多数の項目にわたって繰り返されることになる。