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

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

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

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

COLUMN(英語)は、日本語に訳すると「柱、円柱、円柱状のもの」、「印刷物の縦の段」、「縦隊、縦陣」といった意味です。

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

COLUMN句の形式

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

■書式

 COLUMN [NUMBER IS  [相対位置指定] 横位置]

■構文規則

 <相対位置指定>

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

 <横位置>

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

■使用例

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

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

辞典・辞書-COLUMN-使用例

■実行結果

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

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

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

辞典・辞書-COLUMN-入力例

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

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

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

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

COLUMN句は、「COL」と省略形で記述することが可能です。

■COLUMN句の一般的な規則

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

画面の縦位置を指定するLINE句を指定し、COLUMN句を省略すると、COLUMN句に「1」を記述した場合と同じ扱いになります。

COLUMN句に相対位置指定をすると、横位置の開始位置は、先に定義した画面データ項目の最後の横位置からの相対位置になります。先に定義した画面項目の長さは、PICTURE句、VALUE句、SIZE句で指定した長さです。また、このとき、先に定義した画面データ項目が画面に表示されているかいないかは関係ありません。

画面データ項目の横位置をCOLUMN句で指定したときに、画面の横の範囲からはみ出してしまう位置を指定すると、行を折り返して、次の行に横位置が加算されます。

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

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

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

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

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

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

   
  1. ******************************************************************
  2. * Author:
  3. * Date:
  4. * Purpose:
  5. * Tectonics: cobc
  6. ******************************************************************
  7. IDENTIFICATION DIVISION.
  8. PROGRAM-ID. COLUMN-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(15) VALUE "INPUT 1 or 2".
  21. 01 INPUT-RESULT PIC X(1).
  22. 01 OUTPUT-RESULT PIC X(10).
  23.  
  24. SCREEN SECTION.
  25. 01 CONSOLE-SCREEN
  26. LINE 12 COLUMN 37.
  27. 05 WARNING-STRING PIC X(15)
  28. FROM WARNING.
  29. 05 INPUT-RESULT-SCREEN
  30. LINE 14 COLUMN 37 PIC X(1)
  31. TO INPUT-RESULT.
  32. 05 OUTPUT-RESULT-SCREEN
  33. LINE 14 COLUMN 40 PIC X(10)
  34. FROM OUTPUT-RESULT.
  35.  
  36. *-------------------------------------------
  37. * 主手続
  38. *-------------------------------------------
  39. PROCEDURE DIVISION.
  40.  
  41. MOVE "014037" TO CURSOR-POSITION.
  42.  
  43. ACCEPT CONSOLE-SCREEN
  44. ON EXCEPTION DISPLAY "ERROR...".
  45.  
  46. IF INPUT-RESULT = 1 THEN
  47. MOVE "りんご" TO OUTPUT-RESULT
  48. ELSE IF INPUT-RESULT = 2 THEN
  49. MOVE "みかん" TO OUTPUT-RESULT
  50. END-IF
  51. END-IF.
  52.  
  53. DISPLAY OUTPUT-RESULT-SCREEN.
  54. DISPLAY OUTPUT-RESULT-SCREEN AT LINE 14 COLUMN 50.
  55.  
  56. END-PROC.
  57. STOP-RUN.
  58. END PROGRAM COLUMN-SAMPLE2.

■実行結果

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

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

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

辞典・辞書-COLUMN-入力例

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

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

COBOL言語において、画面の入出力機能の習得は必須ではありませんが、覚えておくと作成できるプログラムのバリエーションが広がります。これを機会に習得してみてはいかがでしょうか。

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

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

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

COBOL入門のカテゴリー

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