【COBOL】DISPLAY-OF関数でデータ表示をマスターする8つのステップ – JPSM

【COBOL】DISPLAY-OF関数でデータ表示をマスターする8つのステップ

COBOLのDISPLAY-OF関数を使ったデータ表示のイメージ画像COBOL

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

また、理解しにくい説明や難しい問題に躓いても、JPSMがプログラミングの解説に特化してオリジナルにチューニングした画面右下のAIアシスタントに質問していだければ、特殊な問題でも指示に従い解決できるように作ってあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読むことで、あなたはCOBOLのDISPLAY-OF関数の基本から応用までを学ぶことができます。

特に、プログラミング経験がない方にも、COBOLでのデータ表示の基礎を簡単に理解できるように解説します。

実用的なサンプルコードを通じて、実際にどのように表示処理が行われるのかを見ていきましょう。

●COBOLとは

COBOL(Common Business Oriented Language)は、ビジネス用途に特化したプログラミング言語です。

1959年に開発されて以来、金融機関や政府機関などで広く使われています。

その特徴は、英語に近い構文を持つことで、可読性が高く、ビジネスの論理を直感的にコード化できる点にあります。

○COBOLの歴史と特徴

COBOLは、1950年代後半にアメリカ国防総省の要請により開発されました。

当時、多様なプログラミング言語が乱立しており、標準化の必要性が高まっていました。

COBOLは、異なるコンピューターシステム間での互換性を持ち、特にビジネス処理に特化して設計された点が大きな特徴です。

長い歴史を持ち、現在でも多くの企業システムで使用されている耐久性の高い言語として知られています。

●DISPLAY-OF関数の基本

DISPLAY-OF関数は、COBOLプログラムにおいてデータを画面やプリンターに出力するために使用される基本的な関数です。

この関数を使用することで、数値や文字列などの様々なデータをユーザーに表示することができます。

特に、ビジネスアプリケーションにおいては、報告書や伝票などの出力に不可欠な機能です。

○DISPLAY-OF関数の役割と機能

DISPLAY-OF関数は、単純な文字列の表示から複雑なデータ構造のフォーマットされた出力まで、幅広い用途に使用されます。

この関数の基本的な形式は、DISPLAY 'テキスト'という形で、引用符で囲まれたテキストを出力します。

また、変数を使用して動的なデータを表示することも可能です。

例えば、DISPLAY 変数名と記述することで、その変数に格納されているデータを出力できます。

さらに、UPON句を使用して出力先を指定することもでき、これにより画面だけでなくプリンターやファイルなど、様々な出力先にデータを送ることが可能になります。

●DISPLAY-OF関数の使い方

COBOLにおけるDISPLAY-OF関数の使用方法は非常にシンプルであり、初心者にも理解しやすいものです。

この関数は、主に画面やプリンターにテキストや数値などのデータを出力するために使用されます。

基本的な使用法から、少し応用した使い方まで、いくつかのサンプルコードを通じて詳しく見ていきましょう。

○サンプルコード1:シンプルな文字列の表示

まずは最も基本的な文字列の表示から始めます。

下記のサンプルコードは、「Hello, COBOL!」という文字列を画面に表示する一連の処理を表しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
    DISPLAY 'Hello, COBOL!'.
STOP RUN.

このコードでは、DISPLAY文を使って文字列「Hello, COBOL!」を画面に出力しています。

このように、DISPLAY文は引数に取った文字列をそのまま画面に表示する機能を持っています。

○サンプルコード2:数値の表示

次に、数値を表示する方法を見てみましょう。

下記のサンプルコードでは、数値12345を画面に表示します。

IDENTIFICATION DIVISION.
PROGRAM-ID. NUMDISPLAY.
PROCEDURE DIVISION.
    DISPLAY 12345.
STOP RUN.

このコードは、数値12345DISPLAY文を使用して直接表示しています。

COBOLでは、文字列だけでなく数値もこのように直接表示することが可能です。

○サンプルコード3:変数を使った表示

最後に、変数を使用してデータを表示する方法について説明します。

下記のサンプルコードは、変数に格納されたデータを画面に表示しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. VARDISPLAY.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 MY-DATA PIC 9(5) VALUE 54321.
PROCEDURE DIVISION.
    DISPLAY MY-DATA.
STOP RUN.

このコードでは、WORKING-STORAGE SECTIONに定義した数値型の変数MY-DATA54321という値を格納し、DISPLAY文を用いてその値を画面に表示しています。

変数を使用することで、動的に変化するデータを柔軟に画面に出力することができます。

●DISPLAY-OF関数の応用例

COBOLのDISPLAY-OF関数は基本的な使い方だけでなく、さまざまな応用が可能です。

ここでは、条件分岐やループ処理、フォーマットされた出力など、少し応用した使い方をサンプルコードを交えて詳しく解説します。

○サンプルコード4:条件分岐を伴う表示

条件分岐を使用することで、特定の条件に応じて異なるテキストを表示することが可能です。

下記のサンプルコードでは、数値の大小に応じて異なるメッセージを表示しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. CONDDISPLAY.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 NUM PIC 9(2) VALUE 50.
PROCEDURE DIVISION.
    IF NUM > 50 THEN
        DISPLAY 'Number is greater than 50.'
    ELSE
        DISPLAY 'Number is 50 or less.'
    END-IF.
STOP RUN.

このコードでは、IF文を用いて変数NUMの値が50より大きいかどうかを判断し、それに応じて異なるテキストをDISPLAY文で表示しています。

○サンプルコード5:ループ処理での連続表示

ループ処理を使うことで、一定の条件下で繰り返し表示を行うことができます。

下記のサンプルコードでは、1から10までの数値を順番に表示しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. LOOPDISPLAY.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 NUM PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
    PERFORM UNTIL NUM > 10
        DISPLAY NUM
        ADD 1 TO NUM
    END-PERFORM.
STOP RUN.

このコードでは、PERFORM UNTILループを使用して、変数NUMの値が10を超えるまで数値を表示し続けています。

ループの各ステップでNUMに1を加算しています。

○サンプルコード6:フォーマットされた出力

DISPLAY-OF関数は、フォーマットされた出力も可能です。

下記のサンプルコードでは、日付を特定のフォーマットで表示しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. FORMATTEDDISPLAY.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 TODAY PIC 9(8) VALUE 20230101.
PROCEDURE DIVISION.
    DISPLAY "Today's date is " TODAY(1:4) "/" TODAY(5:2) "/" TODAY(7:2).
STOP RUN.

このコードでは、TODAY変数に格納された日付(例: 20230101)を年/月/日の形式で表示しています。

日付の年、月、日の部分をサブストリング(部分文字列)として抽出し、フォーマットされた出力を実現しています。

●注意点と対処法

COBOLのDISPLAY-OF関数を使用する際には、いくつかの注意点があります。

これらを理解し、適切に対処することで、プログラムの安定性と効率を高めることができます。

○表示の際の一般的なエラーとその解決方法

DISPLAY-OF関数を使用する際によく見られるエラーの一つに、データ型の不一致があります。

例えば、数値を文字列として表示しようとすると、エラーが発生することがあります。

このような場合、データ型を適切に変換する必要があります。

また、表示するデータが指定された領域に収まらない場合もエラーの原因となります。

これを避けるためには、表示するデータのサイズを事前に確認し、必要に応じてフォーマットを調整することが重要です。

これらのエラーを避けるためには、下記のようなサンプルコードを参考にすると良いでしょう。

IDENTIFICATION DIVISION.
PROGRAM-ID. ERRORHANDLE.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 NUM-NUMERIC PIC 9(5) VALUE 12345.
    01 NUM-STRING PIC X(5).
PROCEDURE DIVISION.
    MOVE NUM-NUMERIC TO NUM-STRING
    DISPLAY NUM-STRING.
STOP RUN.

このコードでは、数値を文字列に変換してから表示しています。

これにより、データ型の不一致によるエラーを回避できます。

○効率的なデータ表示のコツ

効率的なデータ表示のためには、表示するデータの処理とフォーマットに注意する必要があります。

例えば、大量のデータを表示する場合、データをバッチ処理することで処理速度を向上させることができます。

また、データを表示する際には、適切なフォーマットを使用して、読みやすさを確保することも大切です。

下記のサンプルコードは、複数のデータを効率的に表示しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. EFFDISPLAY.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 NUM PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
    PERFORM UNTIL NUM > 10
        DISPLAY "Data: " NUM
        ADD 1 TO NUM
    END-PERFORM.
STOP RUN.

このコードでは、PERFORM UNTILループを使用して複数のデータを順番に表示しています。

このようにループ処理を使用することで、多くのデータを効率的に処理し表示することが可能になります。

●カスタマイズ方法

COBOLのDISPLAY-OF関数では、表示スタイルをカスタマイズすることが可能です。

これにより、出力されるデータをより使いやすく、見やすくすることができます。

ここでは、表示のカスタマイズ方法と応用的な表示スタイルの実現方法について詳しく説明します。

○表示のカスタマイズテクニック

表示するデータのフォーマットをカスタマイズすることで、出力の可読性を高めることができます。

たとえば、数字や日付を特定のフォーマットで表示したり、文字列を特定の幅で表示することが可能です。

下記のサンプルコードでは、数字を特定のフォーマットで表示する例を示しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. FORMATDISPLAY.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 NUM-NUMERIC PIC 9(5) VALUE 12345.
    01 NUM-FORMATTED PIC Z,ZZ9.
PROCEDURE DIVISION.
    MOVE NUM-NUMERIC TO NUM-FORMATTED
    DISPLAY NUM-FORMATTED.
STOP RUN.

このコードでは、NUM-NUMERIC変数に格納された数値をNUM-FORMATTED変数に移動し、カンマを含むフォーマットで表示しています。

○応用的な表示スタイルの実現方法

応用的な表示スタイルを実現するためには、複数のDISPLAY文を組み合わせたり、条件分岐やループ処理を用いることが有効です。

例えば、下記のサンプルコードでは、条件に応じて異なるメッセージを表示しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. ADVANCEDDISPLAY.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 STATUS PIC X(5) VALUE 'OPEN'.
PROCEDURE DIVISION.
    IF STATUS = 'OPEN' THEN
        DISPLAY 'Status: ' STATUS
    ELSE
        DISPLAY 'Status: Closed'.
    END-IF.
STOP RUN.

このコードでは、STATUS変数の値に応じて異なるステータスメッセージを表示しています。

このようにDISPLAY文を条件分岐と組み合わせることで、より複雑な表示ロジックを実現することができます。

まとめ

この記事では、COBOLのDISPLAY-OF関数の基本的な使い方から応用的なテクニックまでを詳しく解説しました。

初心者でも理解しやすいように、具体的なサンプルコードを交えて説明してきました。

これらの知識を活用することで、COBOLプログラミングにおけるデータ表示のスキルを効果的に向上させることができるでしょう。