COBOL言語の「TYPE句」とは?データ型機能について知ろう | 用語辞典

COBOL(コボル)言語の予約語TYPE句を使った命令文の書き方とは

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

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

TYPE句は報告書や帳票などを作成するときに、報告集団の情報を記述する報告集団記述項の1つです。

TYPE句は報告書集団記述項の中でも、主に報告書集団のデータ型や種類、出力位置などを宣言するときに、データ部(DATA DIVISION)に記述します。

TYPE句で指定する項目は主に「REPORT HEADING (報告書頭書き)」「PAGE HEADING(ページ頭書き)」「CONTROL HEADING (制御頭書き)」「DETAIL(明細報告)」「CONTROL FOOTING(制御脚書き)」「PAGE FOOTING(ページ脚書き)」「REPORT FOOTING (報告書脚書き)」などがあります。

また、報告書を作成するにはTYPE句の他にも印字位置を指定するCOLUMN NUMBER句や制御切れ、改ページを指定するGROUP INDICATE句、報告集団の縦の位置を指定するLINE NUMBER句など、さまざまな機能があります。

書き方:

TYPE IS {REPORT HEADING または RH}

    {PAGE HEADING または PH}

    {CONTROL HEADING または CH} {データ-1 または FINAL}

    {DETAIL または DE}

    {CONTROL FOOTING または CF} {データ-1 または FINAL}

    {PAGE FOOTING または PF}

    {REPORT FOOTING または RF}

    

TYPE句の各項目は、それぞれRH、PHなどの省略形で記述することもできます。

TYPE句は以下のように記述します。

辞典・辞書-TYPE-記述例

    

サンプルでは報告書記述項(RD)も記述しています。RD句では報告書のページ形式や制御用データ項目について指定します。

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

  1. TYPE IS 各項目などの間の空白や改行は、自由に指定できます。
  2. REPORT HEADINGには報告書頭書き報告集団を指定します。
  3. PAGE HEADINGにはページ頭書き報告集団を指定します。
  4. CONTROL HEADINGには制御頭書き報告集団を指定します。
  5. DETAILには明細報告集団を指定します。
  6. CONTROL FOOTINGには制御脚書き報告集団を指定します。
  7. PAGE FOOTINGにはページ脚書き報告集団を指定します。
  8. REPORT FOOTINGには報告書脚書き報告集団を指定します。
  9. データ-1、データ-2およびFINALは、報告書記述項のCONTROL句で指定します。また、両方を省略することもできます。

COBOL(コボル)言語のTYPE句を扱う上での注意点

  1. TYPE IS 各項目の報告集団は複数指定できません。
  2. TYPE句で参照する型は同じでなければいけません。
  3. 制御脚書きおよび報告書脚書きでは、SOURCEおよびUSE句は、制御(CONTROL)項目または制御項目に従属する項目を参照することはできません。
  4. ページ頭書きまたは頭書きグループでは、制御(CONTROL)項目または制御項目に従属する項目を参照することはできません。
  5. 1つの報告書の記述には、1つの本体集団の記述がなければいけません。

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

TYPE句を指定すれば、報告書を作成する上で必要な報告集団を宣言することができます。ここでは、帳票を出力するための簡単なサンプルを紹介します。

(TYPE句以外のプログラムの詳細な処理内容については、ここでは省略します。)

   
  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. TYPE_SAMPLE.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. FILE-CONTROL.
  6. SELECT REPORT-FILE ASSIGN TO 'report.txt'
  7.   …
  8. DATA DIVISION.
  9. FILE SECTION.
  10. FD REPORT-FILE
  11. WORKING-STORAGE SECTION.
  12. *>報告書節
  13. REPORT SECTION.
  14. *>報告書記述項
  15. RD URIAGE-HOKOKUSHO-LIST
  16. LINE LIMIT 100
  17. FIRST DETAIL 5
  18. PAGE LIMIT 50
  19. CONTROL IS HOKOKUSHO.
  20.  
  21. *>制御頭書き報告集団を指定
  22. 01 TYPE IS CONTROL HEADING URIAGE.
  23. 02 LINE NUMBER PLUS 3.
  24. 03 COLUMN 10 PIC X(5) VALUE '-----'.
  25. 03 COLUMN 20 PIC X(5) VALUE 'URIAGE'.
  26. 03 COLUMN 30 PIC X(5) VALUE 'REPORT'.
  27. 03 COLUMN 46 PIC X(5) VALUE '-----'.
  28.  
  29. *>制御頭書き報告集団を指定
  30. 01 TYPE IS CONTROL HEADING REPORT.
  31. 02 LINE NUMBER PLUS 2.
  32. 03 COLUMN 13 PIC X(2) VALUE '--'.
  33. 03 COLUMN 20 PIC X(5) VALUE 'TOKYO'.
  34. 03 COLUMN 30 PIC X(11) VALUE 'URIAGE-DAKA'.
  35. 03 COLUMN 46 PIC X(2) VALUE '--'.
  36.  
  37. *>明細報告集団を指定
  38. 01 URIAGE-DAKA TYPE IS DETAIL.
  39. 02 LINE NUMBER PLUS 1.
  40. 03 COLUMN 15 PIC X(15) SOURCE SHOHIN.
  41. 03 COLUMN 30 PIC 99,999 SOURCE ITEM02.
  42.  
  43. *>制御脚書き報告集団を指定
  44. 01 TYPE IS CONTROL FOOTING TOKUYAKU.
  45. 02 LINE NUMBER PLUS 2.
  46. 03 COLUMN 15 PIC X(7) VALUE "GOUKEI".
  47. 03 COLUMN 25 PIC ¥¥,¥¥9 SUM URIAGE.
  48. 03 COLUMN 35 PIC X(6) VALUE "RUIKEI".
  49. 03 COLUMN 45 PIC ¥,¥¥¥,¥¥9 SUM URIAGE.
  50.  
  51. PROCEDURE DIVISION.
  52. STOP RUN.
    
※【¥】は全角表記ですが、実際の入力は半角で入力ください。

帳票への出力例:

辞典・辞書-TYPE-出力例

サンプルでは、それぞれのTYPE句の項目に出力するためのデータを指定しています。

「TYPE IS CONTROL HEADING URIAGE」CONTROL HEADINGではURIAGEの値に変更があったときに、印刷します。

「TYPE IS CONTROL HEADING REPORT」では、REPORTの値が変わったときに印刷します。

「URIAGE-DAKA TYPE IS DETAIL」では、明細報告集団を印刷します。

「TYPE IS CONTROL FOOTING TOKUYAKU」では、TOKUYAKUの値が変わったときに印刷します。

各TYPE句では指定した位置に帳票へ出力するために、COLUMNでカラムの位置を指定しています。

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

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

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

COBOL入門のカテゴリー

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