7.20.1 DEF_ARRAY のパラメータ

ENTRY_DEC

ENTRY_LEN

INDEXES

NAME

OF_FIELDS

OVERLAYING

TOT_ENTRY

TYPE

NAME

配列に付ける名前を指定します。配列名を付ける際の警告およびコメントを以下に示します。

INDEXES

配列内の個々の要素を参照するための索引として使用する数値フィールドの名前を指定します。

索引名は、少なくとも 1 つ指定する必要があり、最大 50 個まで指定できます。

配列索引フィールド名を付ける際の警告およびコメントを以下に示します。

データ・ディクショナリにいくつかの標準配列索引名を定義し、すべてのプログラムで使用できるようにしておくことを強くお勧めします。少なくとも、以下の索引フィールドを定義することをお勧めします。

                                                                            

名前

タイプ

長さ

小数点以下桁数

II

P

7

0

JJ

P

7

0

KK

P

7

0

LL

P

7

0

MM

P

7

0

NN

P

7

0

 

桁数を節約して値 2 や 3 にすることは避けてください。後で問題が生じます。

(いかなる状況でも) 配列索引フィールドで他のフィールドをオーバーレイしたり、他のフィールドで配列索引フィールドをオーバーレイしないでください。

OF_FIELDS

この配列から索引によって参照できるように、連続した記憶域にグループ化する 1~100 個のフィールドを指定します。

すべてのフィールドは、タイプ、長さ、および小数点以下桁数が同じである必要があります。このパラメータでは、拡張可能なグループ式を使用できます。どのフィールドにもASQN属性が割り当てられていないか、すべてのフィールドに ASQN 属性が割り当てられている必要があります。

DEFINE または OVERRIDE コマンドの TO_OVERLAY パラメータを使用して、このパラメータで指定するフィールド自体で他のフィールドをオーバーレイしないでください。

特定の DEF_ARRAY コマンドの OF_FIELDS パラメータで指定したフィールドは、他の DEF_ARRAY コマンドの OF_FIELDS パラメータで指定できません (すなわち、1 つのフィールドは1つの配列にのみ定義できます)。

長さが 256 以下であっても、RDMLX フィールドには #xxx#ARRAY フィールドが自動的に定義されません。

上記の規則に従わないと、予期しない結果になる可能性があります。

OF_FIELDS パラメータと OVERLAYING パラメータは、相互に排他的です。いずれか一方を指定してください。両方を指定することはできません。

OVERLAYING

この配列で完全または部分的にオーバーレイするフィールドの名前を指定します。RDMLX フィールドをオーバーレイすることはできません。また、RDMLX フィールドで他のフィールドをオーバーレイすることもできません。

完全なオーバーレイが必要な場合は、配列の合計長さ (バイト数) とオーバーレイするフィールドの合計長さ (バイト数) が同じでなければなりません。

部分的なオーバーレイが必要な場合は、配列の合計長さ (バイト数) が、オーバーレイするフィールドの合計長さ (バイト数) より短くてもかまいません。

このパラメータの任意指定の開始位置コンポーネントを使用すると、配列で、オーバーレイするフィールドのコンポーネントのみを部分的にオーバーレイすることができます。

必要なオーバーレイが完全か部分的かを問わず、オーバレイするフィールドの終了位置を越える配列を定義しないでください。このルールが守られないと、予期しない結果を招きます。

DEFINE または OVERRIDE コマンドの TO_OVERLAY パラメータを使用して、このパラメータで参照されるフィールド自体で他のフィールドをオーバーレイしないでください。

OVERLAYING パラメータと OF_FIELDS パラメータは、相互に排他的です。いずれか一方を指定してください。両方を指定することはできません。

TYPE

配列内で使用するデータ記憶域のタイプを指定します。有効なタイプは以下のとおりです。

*CHAR

配列に文字または英数字データが保管されます。LANSA ディクショナリ・タイプ"A"に相当します。

*PACKED/*DEC

配列にパック 10 進数データが保管されます。LANSA ディクショナリ・タイプ"P"に相当します。

*SIGNED

配列に符号付きまたはゾーン 10 進数データが保管されます。LANSA ディクショナリ・タイプ "S" に相当します。

OF_FIELDS パラメータを使用するときは、このパラメータを指定しないでください。このパラメータの値は、OF_FIELDS パラメータで指定されたフィールドのタイプから自動的に導き出されます。

TOT_ENTRY

配列に保持する項目の合計数を指定します。有効な値は、1~9999 の整数値です。

OF_FIELDS パラメータを使用するときは、このパラメータを指定しないでください。このパラメータの値は、OF_FIELDS パラメータで指定されたフィールド数から自動的に導き出されます。

ENTRY_LEN

配列内にある個々の項目の合計長さを指定します。

タイプ *CHAR 配列の場合、この値は 1~256 の整数でなければなりません。

タイプ*DEC、*PACKED、および *SIGNED 配列の場合、この値は 1~30 の整数でなければなりません。ここで指定する値は、数値フィールドに保持される合計桁数です。パック 10 進数フィールドの場合、この値は、配列の各項目がメモリー内で占有するバイト数を表しません。

OF_FIELDS パラメータを使用するときは、このパラメータを指定しないでください。このパラメータの値は、OF_FIELDS パラメータで指定されたフィールドの長さから自動的に導き出されます。

ENTRY_DEC

配列の各数値項目に保持される小数点以下桁数 (桁数であって、バイト数ではない) を指定します。

タイプ *CHAR 配列の場合、この値は無視されます。

タイプ *DEC、*PACKED、および *SIGNED 配列の場合、この値は 0~9 の整数でなければなりません。

OF_FIELDS パラメータを使用するときは、このパラメータを指定しないでください。このパラメータの値は、OF_FIELDS パラメータで指定されたフィールドの小数点以下桁数から自動的に導き出されます。