【COBOL学習|初心者向け】COBOLの報告書作成機能:COLUMN NUMBER句で帳票のレイアウトを整えよう

1. 導入:なぜCOLUMN NUMBER句が必要なのか

COBOLで帳票(レポート)を出力する際、皆さんはどのように位置を調整していますか?「半角スペースをひたすら入力して位置を合わせる」という方法は、修正が大変でミスも起きやすいですよね。そんな課題を解決してくれるのが、報告書作成機能(REPORT SECTION)で使われるCOLUMN NUMBER句です。これを使うことで、帳票上の「どこから印字を開始するか」を数値で正確に指定でき、メンテナンス性の高いプログラムを書くことができます。

2. 基礎知識:報告書作成機能の仕組み

COBOLには、帳票出力に特化した「REPORT SECTION」という機能があります。通常のDISPLAY文などとは異なり、ページ制御や合計計算などを自動化できる強力な仕組みです。その中で、各項目が「ページ内のどの位置(X座標)」に表示されるかを定義するのがCOLUMN NUMBER句です。これは、ページ左端を1とした時の「文字の開始位置」を指します。

3. 実装・解決策

COLUMN NUMBER句を使う際は、以下のルールを覚えておいてください。
・1から始まる整数で指定する。
・PIC句とセットで使用し、項目の長さを定義する。
・現在のカラム位置よりも小さい値を指定しない(重なりを防ぐため)。

4. サンプルプログラム

以下は、売上リストを作成する際のREPORT SECTIONの定義例です。

IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE-REPORT.

  • 報告書作成機能を使用した帳票定義の例

REPORT SECTION.
RD SALES-REPORT
PAGE LIMIT 60 LINES.
01 DETAIL-LINE TYPE DETAIL.
05 COLUMN NUMBER 5 PIC X(10) VALUE “商品名”.
05 COLUMN NUMBER 20 PIC X(10) VALUE “単価”.
05 COLUMN NUMBER 35 PIC X(10) VALUE “数量”.
05 COLUMN NUMBER 50 PIC Z(8)9 VALUE ZERO. > 数値の印字例

  • 解説:
  • COLUMN NUMBER 5 は、5文字目から「商品名」を表示します。
  • COLUMN NUMBER 20 は、20文字目から「単価」を表示します。
  • これにより、文字数が変わっても位置がズレることなく、整然とした表になります。

5. 応用・注意点

現場で活用する際の重要な注意点が2つあります。
まず1つ目は「重なりの回避」です。前の項目の長さ(PIC句の定義)と、次の項目のCOLUMN NUMBERの位置が重なってしまうと、コンパイルエラーや予期せぬ出力結果になります。設計段階で「開始位置 + 長さ」が次の項目の開始位置を超えていないか、必ず表計算ソフトなどでレイアウトを確認しましょう。
2つ目は「可変長のデータ」です。項目に動的な値をセットする場合、PIC句の桁数が最大値であることを確認してください。特に日本語(全角)が含まれる場合、環境によってカラム計算が異なることがあるため、テスト出力で印字位置がズレていないか必ず確認することをお勧めします。

この機能を使いこなせば、複雑な帳票レイアウトもスッキリと管理できるようになります。ぜひ現場のプログラムで試してみてくださいね。

コメント

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