【COBOL学習|初心者向け】COBOLのREPORT SECTIONで文字を右寄せにする!JUSTIFIED句の使い方

1. 導入:なぜ報告書の見た目が重要なのか

COBOLのReport Writer機能を使っていると、数字項目は自動的に右寄せになるのに、英数字(PIC X)項目は左詰めで表示されてしまい、表の列が揃わずに悩んだ経験はありませんか?金額やIDなどは、桁を揃えて表示することで、誰が見ても読みやすい報告書になります。今回は、REPORT SECTION内で英数字項目を右寄せにするための「JUSTIFIED RIGHT」句について解説します。

2. 基礎知識:REPORT SECTIONとJUSTIFIED句

COBOLのReport Writer機能は、帳票出力に特化した強力なツールです。通常、PIC X(英数字項目)は「左詰め」で印字されるルールですが、JUSTIFIED(ジャスティファイド)句を記述することで、そのルールを上書きできます。

JUSTIFIED RIGHTを指定すると、定義したフィールドの長さ(PIC句で指定した桁数)の右端に合わせて文字が配置されます。短いデータを指定の幅の中にきれいに収めたい場合に非常に有効です。

3. 実装・解決策

実装方法は非常にシンプルです。REPORT SECTION内の項目定義で、PIC句の直後に「JUSTIFIED RIGHT」と記述するだけです。注意点として、JUSTIFIED句は「項目自体の長さ(PIC X(n))」に対して有効であるという点です。印字されるデータがPIC X(20)であれば、20文字の枠内での右寄せとなります。

4. サンプルプログラム

以下のコードを参考に、ご自身の環境で試してみてください。

01 RPT-LINE TYPE DETAIL.

  • 20桁の幅を確保し、その中で右寄せにする

05 COLUMN 10 PIC X(20) SOURCE WS-NAME JUSTIFIED RIGHT.

  • 比較のために左詰めの項目も配置

05 COLUMN 35 PIC X(20) SOURCE WS-NAME.

  • 解説:
  • WS-NAMEに “COBOL” という5文字が入っている場合
  • 左側の項目は 20桁の右端に ” COBOL” と印字されます
  • 右側の項目は “COBOL ” と印字されます

5. 応用・注意点

現場で活用する際のポイントをいくつか挙げます。

桁数不足に注意: 項目定義のPIC句よりも長いデータがSOURCEに渡された場合、右側の文字から順に切り捨てられてしまう可能性があります。印字したいデータの最大長よりも少し大きめにPIC句を定義しておくのが安全です。
数字項目との違い: 数値項目(PIC 9)であれば、自動的に右寄せ(ゼロサプレスなどは編集記号で行う)されます。JUSTIFIED句は、あくまで「英数字項目を右寄せしたい」という特殊な要件のためにあるものだと覚えておきましょう。
可読性の向上: 報告書の項目が列ごとに整然と並んでいるだけで、システム全体の信頼性がぐっと高まります。細かいところですが、ぜひ現場の帳票作成で活用してみてください。

コメント

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