COBOL言語の「LINE句」で画面項目の座標指定をしよう! | 用語辞典

COBOL(コボル)言語の予約語LINEを使った画面項目の作成とは

辞典・辞書-LINE-イメージ

COBOL(コボル)言語のLINE句とは?

LINE(英語)は、日本語に訳すると「(細くて強い)綱、ひも、なわ、糸」、「物干し綱」、「釣り糸」、「測線」、「線」といった意味です。

COBOL(コボル)言語のLINE句は、画面に表示するデータ項目の縦の位置を指定する機能があります。

LINE句の形式

LINE句は、画面に表示するデータ項目の縦の位置を指定することができます。

■書式

 LINE [NUMBER IS  [相対位置指定] 縦位置]

■構文規則

 <相対位置指定>

 「PLUS」、「+」、「-」のいずれかを指定します。「PLUS」と「+」は記述の仕方が異なりますが、意味は同じです。相対位置指定をすると縦位置が相対値になり、省略すると縦位置が絶対値になります。

 <縦位置>

  データ項目の縦の位置を整数で指定します。指定できる値域は1から255までです。縦位置を省略すると、「+1」と同じ扱いになります。

■使用例

 実際にLINE句を使用し、画面を作成したプログラム例をご紹介します。

 このプログラムは、コンソールに商品番号の入力を促すメッセージを表示したのち、入力された商品番号の商品名を表示するプログラムです。商品名は、商品番号「1」が「バナナ」で、商品番号「2」が「メロン」です。

辞典・辞書-LINE-使用例

■実行結果

はじめに商品番号入力を促すメッセージが表示されます。

辞典・辞書-LINE-実行結果

数字の1を入力してみます。

辞典・辞書-LINE-入力例

商品名「バナナ」が表示され、プログラムが終了しました。

※サンプルプログラムの実行環境は、cobc(GunCOBOL)2.0.0です。実行環境の違いによっては、実行結果が異なる場合があります。

LINE句のCOBOL(コボル)言語における基本事項やルールについて

LINE句は、ACCEPT命令やDISPLAY命令を実行するときの、画面の縦位置を指定する句です。SCREENセクションの基本画面記述項目に対して指定することや、手続き部に記述するDISPLAY命令で直接縦位置を指定することもできます。

■LINE句の一般的な規則

LINE句で指定できる縦位置は、整数の1から255まで、符号をつけることはできません。

LINE句に相対位置指定をすると、縦位置の開始位置は、先に定義した画面データ項目の最後の縦位置からの相対位置になります。先に定義した画面項目の長さは、PICTURE句、VALUE句、SIZE句で指定した長さです。また、このとき、先に定義した画面データ項目が画面に表示されているかいないかは関係ありません。SCREENセクションの01項目が出現すると、相対位置がリセットされ1に戻ります。

画面データ項目の縦位置をLINE句で指定したときに、画面の縦の範囲からはみ出してしまう位置を指定すると、表示されません。

COBOL(コボル)言語のLINE句を使うときの注意点

LINE句は、SCREENセクションで定義した基本画面記述項目に対して指定できます。DISPLAY文にLINE句を指定し、データを表示する場合も、データには基本画面記述項目以外を指定できないことに注意してください。

LINE句を使ったCOBOL(コボル)プログラムの活用方法

画面にデータ表示項目を表示する場合は、SCREENセクションで表示位置を決めるほかにも、DISPLAY文にLINE句とCOLUMN句を指定して表示位置を変化させることができます。

では、DISPLAY文にLINE句とCOLUMN句を指定し、「COBOL(コボル)言語のLINE句とは?」でご紹介したサンプルプログラムを、商品名の下にもう1つ同じ商品名を表示させるプログラムに変更してみましょう。

変更箇所は赤いマーカー部分です。

   
  1. ******************************************************************
  2. * Author:
  3. * Date:
  4. * Purpose:
  5. * Tectonics: cobc
  6. ******************************************************************
  7. IDENTIFICATION DIVISION.
  8. PROGRAM-ID. LINE-SAMPLE2.
  9.  
  10. ENVIRONMENT DIVISION.
  11. CONFIGURATION SECTION.
  12. SPECIAL-NAMES.
  13. CURSOR IS CURSOR-POSITION
  14. CRT STATUS IS CRT-DATA.
  15.  
  16. DATA DIVISION.
  17. WORKING-STORAGE SECTION.
  18. 01 CURSOR-POSITION PIC X(6).
  19. 01 CRT-DATA PIC 9(4).
  20. 01 WARNING PIC X(42)
  21. VALUE "商品番号を入力してください 1 or 2 ".
  22. 01 INPUT-RESULT PIC X(1).
  23. 01 OUTPUT-RESULT PIC X(10).
  24.  
  25. SCREEN SECTION.
  26. 01 CONSOLE-SCREEN
  27. LINE 12 COLUMN 20.
  28. 05 WARNING-STRING PIC X(42)
  29. FROM WARNING.
  30. 05 INPUT-RESULT-SCREEN
  31. LINE 14 COLUMN 30 PIC X(1)
  32. TO INPUT-RESULT.
  33. 05 OUTPUT-RESULT-SCREEN
  34. LINE 14 COLUMN 38 PIC X(10)
  35. FROM OUTPUT-RESULT.
  36.  
  37. *-------------------------------------------
  38. * 主手続
  39. *-------------------------------------------
  40. PROCEDURE DIVISION.
  41.  
  42. MOVE "014037" TO CURSOR-POSITION.
  43.  
  44. ACCEPT CONSOLE-SCREEN
  45. ON EXCEPTION DISPLAY "ERROR...".
  46.  
  47. IF INPUT-RESULT = 1 THEN
  48. MOVE "バナナ" TO OUTPUT-RESULT
  49. ELSE IF INPUT-RESULT = 2 THEN
  50. MOVE "メロン" TO OUTPUT-RESULT
  51. END-IF
  52. END-IF.
  53.  
  54. DISPLAY CONSOLE-SCREEN.
  55. DISPLAY OUTPUT-RESULT-SCREEN AT LINE 15 COLUMN 38.
  56.  
  57. END-PROC.
  58. STOP-RUN.
  59. END PROGRAM LINE-SAMPLE2.

■実行結果

はじめに商品番号入力を促すメッセージが表示されます。

辞典・辞書-LINE-実行結果

数字の1を入力してみます。

辞典・辞書-LINE-入力例

商品名「バナナ」の下にもう1つ「バナナ」が表示され、プログラムが終了しました。

※サンプルプログラムの実行環境は、cobc(GunCOBOL)2.0.0です。実行環境の違いによっては、実行結果が異なる場合があります。

COBOL言語の画面入出力処理は覚えるのが大変ですが、いったん習得してしまえば便利に活用することができます。ぜひこれを機会に習得してみてはいかがでしょうか。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門