COBOL言語の「TYPE句」とは?データ型機能について知ろう | 用語辞典
COBOL(コボル)言語の予約語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句は以下のように記述します。
※サンプルでは報告書記述項(RD)も記述しています。RD句では報告書のページ形式や制御用データ項目について指定します。
TYPE句のCOBOL(コボル)言語における基本事項やルールについて
- TYPE IS 各項目などの間の空白や改行は、自由に指定できます。
- REPORT HEADINGには報告書頭書き報告集団を指定します。
- PAGE HEADINGにはページ頭書き報告集団を指定します。
- CONTROL HEADINGには制御頭書き報告集団を指定します。
- DETAILには明細報告集団を指定します。
- CONTROL FOOTINGには制御脚書き報告集団を指定します。
- PAGE FOOTINGにはページ脚書き報告集団を指定します。
- REPORT FOOTINGには報告書脚書き報告集団を指定します。
- データ-1、データ-2およびFINALは、報告書記述項のCONTROL句で指定します。また、両方を省略することもできます。
COBOL(コボル)言語のTYPE句を扱う上での注意点
- TYPE IS 各項目の報告集団は複数指定できません。
- TYPE句で参照する型は同じでなければいけません。
- 制御脚書きおよび報告書脚書きでは、SOURCEおよびUSE句は、制御(CONTROL)項目または制御項目に従属する項目を参照することはできません。
- ページ頭書きまたは頭書きグループでは、制御(CONTROL)項目または制御項目に従属する項目を参照することはできません。
- 1つの報告書の記述には、1つの本体集団の記述がなければいけません。
TYPE句を使ったCOBOL(コボル)プログラムの活用法
TYPE句を指定すれば、報告書を作成する上で必要な報告集団を宣言することができます。ここでは、帳票を出力するための簡単なサンプルを紹介します。
(TYPE句以外のプログラムの詳細な処理内容については、ここでは省略します。)
- IDENTIFICATION DIVISION.
- PROGRAM-ID. TYPE_SAMPLE.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT REPORT-FILE ASSIGN TO 'report.txt'
- …
- DATA DIVISION.
- FILE SECTION.
- FD REPORT-FILE
- …
- WORKING-STORAGE SECTION.
- …
- *>報告書節
- REPORT SECTION.
- *>報告書記述項
- RD URIAGE-HOKOKUSHO-LIST
- LINE LIMIT 100
- FIRST DETAIL 5
- PAGE LIMIT 50
- CONTROL IS HOKOKUSHO.
- *>制御頭書き報告集団を指定
- 01 TYPE IS CONTROL HEADING URIAGE.
- 02 LINE NUMBER PLUS 3.
- 03 COLUMN 10 PIC X(5) VALUE '-----'.
- 03 COLUMN 20 PIC X(5) VALUE 'URIAGE'.
- 03 COLUMN 30 PIC X(5) VALUE 'REPORT'.
- 03 COLUMN 46 PIC X(5) VALUE '-----'.
- *>制御頭書き報告集団を指定
- 01 TYPE IS CONTROL HEADING REPORT.
- 02 LINE NUMBER PLUS 2.
- 03 COLUMN 13 PIC X(2) VALUE '--'.
- 03 COLUMN 20 PIC X(5) VALUE 'TOKYO'.
- 03 COLUMN 30 PIC X(11) VALUE 'URIAGE-DAKA'.
- 03 COLUMN 46 PIC X(2) VALUE '--'.
- *>明細報告集団を指定
- 01 URIAGE-DAKA TYPE IS DETAIL.
- 02 LINE NUMBER PLUS 1.
- 03 COLUMN 15 PIC X(15) SOURCE SHOHIN.
- 03 COLUMN 30 PIC 99,999 SOURCE ITEM02.
- *>制御脚書き報告集団を指定
- 01 TYPE IS CONTROL FOOTING TOKUYAKU.
- 02 LINE NUMBER PLUS 2.
- 03 COLUMN 15 PIC X(7) VALUE "GOUKEI".
- 03 COLUMN 25 PIC ¥¥,¥¥9 SUM URIAGE.
- 03 COLUMN 35 PIC X(6) VALUE "RUIKEI".
- 03 COLUMN 45 PIC ¥,¥¥¥,¥¥9 SUM URIAGE.
- PROCEDURE DIVISION.
- …
- STOP RUN.
※【¥】は全角表記ですが、実際の入力は半角で入力ください。
帳票への出力例:
サンプルでは、それぞれの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入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語で計算処理をするなら「COMPUTE文」|入門用語辞典
- COBOL言語の「ACCEPT文」の使い方を分かり易く解説|入門用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のCOPY文活用法|応用ガイド
- 一歩先を行くCOBOL言語の表操作!逐次検索と二分検索|応用ガイド
- COBOL言語の加算処理の基本を伝授! 命令文「ADD」とは?|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のファイル併合処理|応用ガイド
- COBOL言語でファイルの開閉命令はOPEN文とCLOSE文!|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のデータ共有|応用ガイド
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- COBOL言語の歴史とこれまでの進化を知る!廃止・追加機能|基礎ガイド
- COBOL言語のオブジェクト指向について理解しよう!|基礎ガイド
- COBOL言語のディスプレイ出力とコンソール入力について|基礎ガイド
- COBOL言語が得意とする計算処理を体験してみよう!|基礎ガイド
- 一歩先を行くCOBOL言語のユーザ定義関数について|応用ガイド
- 初心者から中級者でも安心!理解できるCOBOL言語の勉強法|学習講座
- 初心者必見!COBOL言語を効率よくマスターする勉強法とは|学習講座
- COBOL初心者が犯しやすいミスとその対策について|学習講座
- COBOL初心者がやってはいけない勉強方法とは?|学習講座
- 一歩先へ行くCOBOLプログラマの知っておくべき4つのヒント|学習講座