COBOL2002 ユーザーズガイド


8.4.2 出力形態とレコード形式

GDIモード印刷では,出力するデータ項目にCHARACTER TYPE句を指定することで,印刷制御付きの行データを指定できます。CHARACTER TYPE句の書き方や規則については,マニュアル「COBOL2002 言語 拡張仕様編」 「14.2.1 データ記述項(書式印刷機能)」を参照してください。

WRITE文とCHARACTER TYPE句との関係を次に示します。

〈この項の構成〉

(1) WRITE文とレコード名の関係

(a) WRITE レコード名の場合

レコード名にCHARACTER TYPE句がある場合だけ,行データを印刷制御します。

記述例
       FD A-FILE.
       01 A-REC.
         02 A-REC-1 PIC N(10) CHARACTER TYPE IS POINT-7 WIDE.
         02 A-REC-2 PIC N(10) CHARACTER TYPE IS POINT-9 FORMAT-7.
           :
       PROCEDURE DIVISION.
           :
           WRITE A-REC AFTER 1 LINE.
           :

(b) WRITE レコード名 FROM 一意名の場合

一意名にCHARACTER TYPE句がある場合だけ,行データを印刷制御します。この場合,レコード名にCHARACTER TYPE句があっても,一意名のCHARACTER TYPE句の情報が有効となります。

記述例
       FD A-FILE.
       01 A-REC PIC N(80).
           :
       WORKING-STORAGE SECTION.
       01 DATA1.
         02 A-REC-1 PIC N(10) CHARACTER TYPE IS POINT-7 WIDE.
         02 A-REC-2 PIC N(10) CHARACTER TYPE IS POINT-9 FORMAT-7.
           :
       PROCEDURE DIVISION.
           :
           WRITE A-REC FROM DATA1 AFTER 1 LINE.
           :

(2) CHARACTER TYPE句指定での印刷

(a) POINT-l指定

POINT-lを書くと,文字サイズ(ポイント)を指定できます。lの値はポイント数を示します。

なお,Windows COBOL2002では,POINT-lを省略した場合のポイントは,実行支援の[字サイズ]で指定した値となります。

記述例
         :
       01 A.
         02 A0 CHARACTER TYPE IS POINT-14.
           03 A1 PIC NN VALUE N'下期'.
           03 A2 PIC N(5) POINT-19
                        VALUE N'実用新案権'.
           03 A3 PIC NN VALUE N'一覧'.
         :
       PROCEDURE DIVISION.
             :
           WRITE A-REC FROM A AFTER 1 LINE.
             :
印刷結果

[図データ]

(b) FORMAT-n指定

FORMAT-nを書くと,書体を指定できます。書体は,あらかじめ実行支援の[書体]で設定しておく必要があります。

なお,Windows COBOL2002では,FORMAT-nを省略した場合の書体は,実行支援の[書体]のデフォルトで指定したフォントとなります。

記述例
         :
       01 A.
         02 A0 CHARACTER TYPE IS FORMAT-2.
           03 A1 PIC NN VALUE N'下期'.
           03 A2 PIC N(5) FORMAT-1
                        VALUE N'実用新案権'.
           03 A3 PIC NN VALUE N'一覧'.
         :
       PROCEDURE DIVISION.
             :
           WRITE A-REC FROM A AFTER 1 LINE.
             :
印刷結果

[図データ]

(c) INTERVAL-i指定

INTERVAL-iを書くと,各文字間隔を指定できます。INTERVAL-iを省略した場合の文字間隔は,0ポイントとなります。

なお,Windows COBOL2002では,実行支援の[半角文字と全角文字の間隔を調整する]チェックボックスをチェックしない場合は,全角文字と半角文字の字間隔はi/2ポイントとなります。このチェックボックスをチェックした場合,全角文字の字間隔はiポイント,半角文字の字間隔はi/2ポイントとなります。

記述例
         :
       01 A.
         02 A0 CHARACTER TYPE IS INTERVAL-0.
           03 A1 PIC NN VALUE N'下期'.
           03 A2 PIC N(5) INTERVAL-8 
                        VALUE N'実用新案権'.
           03 A3 PIC NN VALUE N'一覧'.
         :
       PROCEDURE DIVISION.
             :
           WRITE A-REC FROM A AFTER 1 LINE.
             :
印刷結果

[図データ]

(d) WIDE指定

WIDEを書くと,横倍角を指定できます。

記述例
         :
       01 A.
         02 A0.
           03 A1 PIC NN VALUE N'下期'.
           03 A2 PIC N(5) WIDE
                        VALUE N'実用新案権'.
           03 A3 PIC NN VALUE N'一覧'.
         :
       PROCEDURE DIVISION.
             :
           WRITE A-REC FROM A AFTER 1 LINE.
             :
印刷結果

[図データ]

(e) 環境変数CBLGDIINTERVALを使用した出力例

環境変数CBLGDIINTERVALにYESを指定すると,CHARACTER TYPE IS INTERVAL句が出現しない間の項目に対して,実行支援の印刷書式に設定した字間隔を使用します。ただし,CHARACTER TYPE句の指定がまったくないレコードに対しては,環境変数CBLGDIINTERVALの指定と関係なく,実行支援の印刷書式に従った字間隔が使用されます。

環境変数CBLGDIINTERVALを使用した出力例を,次に示します。

レコード定義
       01 W1.
         02 A PIC X(5) VALUE ALL '#'.
         02 B PIC X(5) VALUE ALL 'B'.
         02 C PIC X(5) VALUE ALL 'C'.
       01 W2.
         02 D PIC X(5) VALUE ALL '@'.
         02 E PIC X(5) VALUE ALL 'E'
                       CHARACTER TYPE IS POINT-16.
         02 F PIC X(5) VALUE ALL 'F'.
       01 W3.
         02 G PIC X(5) VALUE ALL '&'.
         02 H PIC X(5) VALUE ALL 'H'
                       CHARACTER TYPE IS INTERVAL-24.
         02 I PIC X(5) VALUE ALL 'I'.
印刷結果(CBLGDIINTERVALにYESを指定した場合)

[図データ]

W1およびW2

実行支援の印刷書式の設定に従った字間隔で出力される

W3
  • INTERVAL指定が出現するまでは,実行支援の印刷書式の設定に従った字間隔で出力される

  • INTERVAL指定があるデータ項目は,INTERVAL指定で指定された字間隔で出力される

  • INTERVAL指定以降のデータ項目は,字間隔0で出力される

注※

実行支援の印刷書式の字間隔を10cpiに設定した場合

印刷結果(CBLGDIINTERVALにYES以外の値を指定した場合,またはCBLGDIINTERVALに値を指定しなかった場合)

[図データ]

W1

実行支援の印刷書式に従った字間隔で出力される

W2

CHARACTER TYPE句の指定があり,かつ環境変数CBLGDIINTERVALにYESが指定されていないため,字間隔0で出力される

W3
  • INTERVAL指定がないデータ項目は,W2と同様に出力される

  • INTERVAL指定があるデータ項目は,INTERVAL指定で指定された字間隔で出力される

注※

実行支援の印刷書式の字間隔を10cpiに設定した場合