ファイル宣言
ファイル宣言 (DCLF) コマンドは、表示装置ファイルまたはデータベース・ファイルを CL プロシージャーまたはプログラムに対して宣言するために使用します。 ファイル宣言 (DCLF) コマンドを使用して、テープ装置ファイル、 印刷装置ファイル、および混合ファイルなどのファイルを宣言することはできません。
1 つの CL プロシージャーまたはオリジナル・プログラム・モデル (OPM) プログラムでは、最大で 5 つのファイルを宣言できます。 DCLF コマンドには次のパラメーターがあります。
DCLF FILE(ライブラリー名 / ファイル名)
RCDFMT(レコード様式名)
OPNID(open_id_name)
ファイルは、 モジュールまたはプログラムのコンパイル前に存在していなければならないことに注意してください。
プロシージャーまたはプログラムで表示装置ファイルを使用する場合に、DDS で入出力共用フィールドを指定しなければならないことがあります。 これらのフィールドは、 プロシージャーまたはプログラムでは変数として処理されます。 ファイル宣言 (DCLF) コマンドを処理すると、CL コンパイラーは、 ファイルの各レコード様式に定義されている個々のフィールドおよびオプション標識に対応する CL 変数を宣言します。フィールドの場合には、 フィールド名の前にアンパーサンド (&) を付けたものが CL 変数名になります。 また、オプション標識の場合には、 標識の前に &IN を付けたものが CL 変数名になります。
オープン・ファイル ID (OPNID) パラメーターを使用すれば、 宣言済みファイルのインスタンスを一意的に識別でき、複数のファイルを宣言できます。 OPNID パラメーターを使用する場合、フィールドでは、 フィールド名の前にアンパーサンド (&) と OPNID 値と下線 (_) を付けたものが CL 変数名になります。 オプション標識では、標識の前にアンパーサンド (&)、OPNID 値、下線、および "IN" を付けたものが CL 変数名になります。
例えば、INPUT という名前のフィールドおよび標識 10 が ファイル宣言 (DCLF) で定義されている場合には、DCLF コマンドにより、フィールドは &INPUT として、 標識は &IN10 として自動的に宣言されます。 この宣言は、CL モジュールまたはプログラムのコンパイル時に行われます。 1 つのコマンドには最高 50 個のレコード様式名を指定することができますが、 変数を指定することはできません。 データベース・ファイルの場合には、指定できるレコード様式は 1 つだけです。
ライブラリー MCGANN に表示装置ファイル CNTRLDSP を作成するために、 次の DDS を入力したと想定します。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A R MASTER
A CA01(01 'F1 RESPONSE')
A TEXT 300 2 4
A RESPONSE 15 1 8 4 BLINK
A
A
DCLF MCGANN/CNTRLDSP
コンパイラーはこのステートメントを展開して、 表示装置ファイルに対応するすべての変数を個別に宣言します。 コンパイラー・リストに示される展開された宣言は次のようになります。
•
•
•
00500- DCLF(MCGANN/CNTRLDSP)
04/02/03
QUALIFIED FILE NAME - MCGANN/CNTRLDSP
RECORD FORMAT NAME - MASTER
CL VARIABLE TYPE LENGTH PRECISION (IF *DEC)
&IN01 *LGL 1
&TEXT *CHAR 300
&RESPONSE *CHAR 15
•
•
•
以下のように DCLF ソース・ステートメントに OPNID パラメーターが含まれる場合、
DCLF MCGANN/CNTRLDSP OPNID(OPENID1)
コンパイラー・リストに示される展開された宣言は次のようになります。
•
•
•
00500- DCLF FILE(MCGANN/CNTRLDSP) OPNID(OPENID1) 04/02/03
QUALIFIED FILE NAME - MCGANN/CNTRLDSP
RECORD FORMAT NAME - MASTER
CL VARIABLE TYPE LENGTH PRECISION TEXT
&OPENID1_IN01 *LGL 1
&OPENID1_TEXT *CHAR 300
&OPENID1_RESPONSE *CHAR 15
•
•
•