COBOL2002 言語 拡張仕様編
14.2.1 データ記述項(書式印刷機能)
- 形式
- 機能
- レコードを出力するWRITE文の実行によって,項目の文字サイズ,文字間隔,書体,横倍角開始を表す機能を指定する。この機能は,XMAP3を使用したプリンタ出力機能およびGDIモード印刷機能でも使用できる。CHARACTER TYPE句はESC/Pモード印刷には有効とならない。このため,レコード中に機能コードを設定して印刷制御をする必要がある。
- UNIX COBOL2002では,-XMAP,LinePrintオプション未指定時は,CHARACTER TYPE句は覚え書きとする。
- 構文規則
- XMAP3を使用したプリンタ出力機能の場合,POINT-lのlの値,FORMAT-nのnの値およびINTERVAL-iのiの値については,マニュアル「画面・帳票サポートシステム XMAP3 プログラミングガイド 帳票編」を参照のこと。
なお,INTERVAL指定をした場合,GAP指定はできない。
- この句を書けるのは,ファイル節,作業場所節,局所場所節または連絡節で定義されるデータ記述項だけである。
- この句は,RENAMES句とともに書けない。
- DEPENDING ON指定のOCCURS句が含まれる集団項目およびその下位項目には,CHARACTER TYPE句を指定できない。
- 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文は正しい書き方である。
- WRITE文のFROM指定の一意名またはその下位項目にCHARACTER TYPE句が指定されているとき,その一意名は,部分参照されていてはならない。
- WRITE文のFROM指定の一意名またはその下位項目にCHARACTER TYPE句が指定されているとき,その項目を含むレコード中にDISPLAY以外のUSAGE句を指定してはならない。
- UNIX COBOL2002では,WRITEするレコード中にCHARACTER TYPE句が含まれるファイルのASSIGN句には,定数指定またはデータ名指定はできない。
- WRITEするレコード中にCHARACTER TYPE句が含まれるファイルには,順ファイル以外は指定できない。
- CHARACTER TYPE句を処理するファイルのレコード長は,384バイト以下でなければならない。
- CHARACTER TYPE句を処理するファイルに,FROM指定なしのWRITE文とFROM指定ありのWRITE文は同時に使用できない。
- CHARACTER TYPE句の指定がある項目を含むレコード中に,外部属性を持つ指標名は指定できない。
- KEIS,POINT-l,GAP-m,FORMAT-n,INTERVAL-i,SHORT,SHORT-1の語は予約語ではない。
これらの語がCHARACTER TYPE句の一部であるかどうかは文脈で判断される。
これらの語をレベル番号の直後に書いた場合,これらの語がデータ名として扱われる。
(例)
03 POINT-7 PIC N(2).
と書くと,「FILLER」を書くのを省略した無名項目ではなく,データ名「POINT-7」が指定されたものとみなされる。
- 一般規則
- 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'一覧'.
- とすると,プリンタへの出力は,次のようになる。
- 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'一覧'.
- とすると,プリンタへの出力は,次のようになる。
- 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'一覧'.
- とすると,プリンタへの出力は,次のようになる。
- 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行分の出力を終えたときも初期状態に戻る。なお,初期状態は,GDIモード印刷機能のとき,実行支援の初期状態の指定に従う。また,XMAP3使用のとき,XMAP3で定義した値に従う。
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.