COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

14.2.1 データ記述項(書式印刷機能)

【標準仕様との関連】
COBOL2002 言語 標準仕様編 9.13 データ記述項(data description entry)
<この項の構成>
(1) CHARACTER TYPE句

(1) CHARACTER TYPE句

形式
[図データ]

機能
レコードを出力するWRITE文の実行によって,項目の文字サイズ文字間隔書体横倍角開始を表す機能を指定する。この機能は,XMAP3を使用したプリンタ出力機能およびGDIモード印刷機能でも使用できる。CHARACTER TYPE句はESC/Pモード印刷には有効とならない。このため,レコード中に機能コードを設定して印刷制御をする必要がある。
UNIX COBOL2002では,-XMAP,LinePrintオプション未指定時は,CHARACTER TYPE句は覚え書きとする。

構文規則
  1. XMAP3を使用したプリンタ出力機能の場合,POINT-llの値,FORMAT-nnの値およびINTERVAL-iiの値については,マニュアル「画面・帳票サポートシステム XMAP3 プログラミングガイド 帳票編」を参照のこと。
    なお,INTERVAL指定をした場合,GAP指定はできない。
  2. この句を書けるのは,ファイル節,作業場所節,局所場所節または連絡節で定義されるデータ記述項だけである。
  3. この句は,RENAMES句とともに書けない。
  4. DEPENDING ON指定のOCCURS句が含まれる集団項目およびその下位項目には,CHARACTER TYPE句を指定できない。
  5. WRITE文で指定したレコード名およびその下位項目,またはWRITE文のFROM指定の一意名およびその下位項目も,REDEFINES句とCHARACTER TYPE句を同時に指定してはならない。
    (例)
 
       01 OUTREC.
         02 A    PIC X(2).
         02 B.
           03 C  PIC X(4).
           03 D  PIC N(2) CHARACTER TYPE IS POINT-7.
         02 E REDEFINES B.
           03 F  PIC N(2).
           03 G  PIC X(4).
         02 H    PIC S9(5).
           :
           WRITE A-REC FROM OUTREC. (誤)…(1)
           WRITE A-REC FROM B.      (正)…(2)
 
(1)のWRITE文は指定した一意名の下位項目の中にREDEFINES句とCHARACTER TYPE句を同時に指定しているので誤りである。
(2)のWRITE文は正しい書き方である。
  1. WRITE文のFROM指定の一意名またはその下位項目にCHARACTER TYPE句が指定されているとき,その一意名は,部分参照されていてはならない。
  2. WRITE文のFROM指定の一意名またはその下位項目にCHARACTER TYPE句が指定されているとき,その項目を含むレコード中にDISPLAY以外のUSAGE句を指定してはならない。
  3. UNIX COBOL2002では,WRITEするレコード中にCHARACTER TYPE句が含まれるファイルのASSIGN句には,定数指定またはデータ名指定はできない。
  4. WRITEするレコード中にCHARACTER TYPE句が含まれるファイルには,順ファイル以外は指定できない。
  5. CHARACTER TYPE句を処理するファイルのレコード長は,384バイト以下でなければならない。
  6. CHARACTER TYPE句を処理するファイルに,FROM指定なしのWRITE文とFROM指定ありのWRITE文は同時に使用できない。
  7. CHARACTER TYPE句の指定がある項目を含むレコード中に,外部属性を持つ指標名は指定できない。
  8. KEIS,POINT-l,GAP-m,FORMAT-n,INTERVAL-i,SHORT,SHORT-1の語は予約語ではない。
    これらの語がCHARACTER TYPE句の一部であるかどうかは文脈で判断される。
    これらの語をレベル番号の直後に書いた場合,これらの語がデータ名として扱われる。
    (例)
    03 POINT-7 PIC N(2).
    と書くと,「FILLER」を書くのを省略した無名項目ではなく,データ名「POINT-7」が指定されたものとみなされる。

一般規則
  1. POINT-lを書くことによって,文字サイズ(ポイント)を指定できる。lの値はポイント数を示す。
    上位項目に異なる値のPOINT-lが指定されていると,そのポイントに戻すための処理が項目の後で実行される。上位項目にPOINT-lの指定がない場合は,省略値のポイントに戻すための処理が項目の後で実行される。ただし,後に続く項目がなければ,元に戻すための処理はしない。
    lの値は,XMAP3で使用できるポイント数でなければならない(XMAP3使用時だけ)。
    POINT-lを書かない場合の省略値のポイントは,GDIモード印刷機能のときは,実行支援の[字サイズ]で指定したポイントとなる。また,XMAP3を使用するときは,XMAP3で定義したポイントとなる。
    (例)
 
       01 A.
         02 A-F  PIC X.
         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'一覧'.
 
とすると,プリンタへの出力は,次のようになる。
[図データ]
  1. FORMAT-nを書くことによって,書体を指定できる。
    上位項目に異なる値のFORMAT-nが指定されていると,その書体に戻すための処理が項目の後で実行される。上位項目にFORMAT-nの指定がない場合は,省略値の書体に戻すための処理が項目の後で実行される。ただし,後に続く項目がなければ,元に戻すための処理はしない。
    FORMAT-nを書かないときの省略値の書体は,実行支援の[書体]の初期状態で指定したフォントとなる。また,XMAP3を使用するときは,XMAP3で定義したフォントとなる。
    (例)
 
       01 A.
         02 A-F  PIC X.
         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'一覧'.
 
とすると,プリンタへの出力は,次のようになる。
[図データ]
  1. INTERVAL-iを書くことによって,各文字間隔を指定できる。
    上位項目に異なる値のINTERVAL-iが指定されていると,その文字間隔に戻すための処理が項目の後で実行される。上位項目にINTERVAL-iの指定がない場合は,省略値の文字間隔に戻すための処理が項目の後で実行される。ただし,後に続く項目がなければ,元に戻すための処理はしない。
    INTERVAL-iを書かないときの省略値の文字間隔は,0ポイントである。
    実行支援の[全角文字の間隔を半角文字の間隔の2倍で印刷]チェックボックスをチェックしない場合は,全角文字と半角文字の字間隔はi/2ポイントとなる。このチェックボックスをチェックした場合,全角文字の字間隔はiポイント,半角文字の字間隔はi/2ポイントとなる。
    (例)
 
       01 A.
         02 A-F  PIC X.
         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'一覧'.
 
とすると,プリンタへの出力は,次のようになる。
[図データ]
  1. WIDEを書くことによって,横倍角を指定できる。
    上位項目にWIDEの指定がない場合は,省略値の字体に戻すための処理が項目の後で実行される。ただし,後に続く項目がなければ,元に戻すための処理はしない。WIDEを書くことによって,字間隔も2倍になる。
    (例)
 
       01 A.
         02 A-F  PIC X.
         02 A0.
           03 A1 PIC NN VALUE N'下期'.
           03 A2 PIC N(5) WIDE VALUE N'実用新案権'.
           03 A3 PIC NN VALUE N'一覧'.
 
とすると,プリンタへの出力は,次のようになる。
[図データ]
  1. これらを指定しないと,初期状態で印刷する。1行分の出力を終えたときも初期状態に戻る。なお,初期状態は,GDIモード印刷機能のとき,実行支援の初期状態の指定に従う。また,XMAP3使用のとき,XMAP3で定義した値に従う。