【COBOL学習|初心者向け】見やすい帳票を作る!COBOLの「数字編集項目」活用術

なぜ「数字編集項目」が必要なのか

COBOLでシステムを開発していると、必ずぶつかるのが「金額や数量の表示」です。例えば、計算結果が「123456」という数値だった場合、そのまま出力するとユーザーには非常に読みづらいですよね。「123,456」のようにカンマを入れたり、不要なゼロを消したりして、人間が見やすい形に整える必要があります。この「表示のための整形」を一瞬で行ってくれる魔法のような機能が、今回紹介する「数字編集項目」です。

基礎知識:数値項目と編集項目の違い

COBOLのデータ定義において、計算を行うための項目を「数値項目(PIC 9など)」と呼びます。これに対し、表示専用の項目を「数字編集項目」と呼びます。
重要なルールとして、数字編集項目は「計算には使えない」という点があります。あくまで「計算結果をMOVE文で転記して、見栄えを整えて表示する」ための受け皿だと考えてください。

実装の仕組み:PICTURE句の魔法

数字編集項目は、PICTURE句に特定の記号を組み合わせることで定義します。
・Z:先行するゼロを空白に変換します(ゼロサプレス)。
・,(カンマ):桁区切りを挿入します。
・.(ピリオド):小数点位置を明示します。
・$:通貨記号を表示します。

これらの記号を使うことで、複雑な編集ロジックを自分で書く必要がなくなり、MOVE文一つで美しい帳票データが出来上がります。

サンプルプログラム

以下のコードをコピーして、ご自身の環境で試してみてください。数値がどのように整形されるかが一目でわかります。

IDENTIFICATION DIVISION.
PROGRAM-ID. EDIT-SAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.

  • 計算用の数値項目

05 WS-PRICE-IN PIC 9(6) VALUE 12345.

  • 編集後の出力項目(カンマとゼロ抑制を適用)

05 WS-PRICE-OUT PIC ZZ,ZZ9.

PROCEDURE DIVISION.

  • 数値を編集項目に転記(この瞬間に整形される)

MOVE WS-PRICE-IN TO WS-PRICE-OUT.

  • 結果を表示(” 12,345″ と表示されます)

DISPLAY “編集前: ” WS-PRICE-IN.
DISPLAY “編集後: ” WS-PRICE-OUT.

STOP RUN.

応用・注意点:現場でハマりやすい罠

実務で数字編集項目を使う際、以下の点に注意してください。

1. 桁数オーバーに注意
編集項目(PIC ZZ,ZZ9など)よりも元の数値が大きい場合、データが切り捨てられたり、実行時エラーになることがあります。出力先は、想定される最大値よりも十分に大きなサイズを確保しましょう。

2. 計算に使えないことを忘れない
「編集項目に値が入っているから」といって、そのままADD文などで計算しようとするとコンパイルエラーや予期せぬ挙動になります。必ず「数値項目」で計算し、最後に「編集項目」へMOVEして表示する、という流れを徹底してください。

帳票設計において、この数字編集項目を使いこなすことは、プロのCOBOLエンジニアとしての第一歩です。ぜひ活用してみてくださいね!

コメント

タイトルとURLをコピーしました