7.17.1 DEF_ARRAYのパラメータ
配列に付ける名前を指定します。配列名を付ける際の警告およびコメントを以下に示します。
· 名前の先頭文字は、標準の"#"記号でなければなりません。
· 名前は、2〜4文字("#"を含む)で指定できます。
· 2番目の文字は、英字でなければなりません。
· それ以降の文字は、英字または1、2、3、4、5、6、7、8、9、0、$のいずれかでなければなりません。
· ファンクションと強化されたすべてのインパクト分析機能の間で行われる配列データの交換を促進するために、アプリケーション・システムで使用する配列命名規則を策定することを強くお勧めします。
· 以下の名前は予約済みのため使用しないでください。
· "@"記号を含む名前
· 埋め込み"#"記号を含む名前
· "MVR"、"CMK"、"RIM"、または"GEN"を含む名前
· 配列名として'TAB'を使用することはできません。
配列内の個々の要素を参照するための索引として使用する数値フィールドの名前を指定します。
索引名は、少なくとも1つ指定する必要があり、最大50個まで指定できます。
配列索引フィールド名を付ける際の警告およびコメントを以下に示します。
· 名前の先頭文字は、標準の"#"記号でなければなりません。
· 名前は、3文字("#"を含む)でなければなりません。
· 2番目の文字は、英字でなければなりません。
· 3番目の文字は、英字または1、2、3、4、5、6、7、8、9、0、$のいずれかでなければなりません。
· 配列索引フィールドは数値フィールド(パック10進数または符号付き)で、このファンクションまたはLANSAデータ・ディクショナリのいずれかで定義されていなければなりません。
· 配列索引フィールドとしてRDMLXフィールドを使用することはできません。
· 以下の名前は予約済みのため使用しないでください。
· "@"記号を含む名前
· 埋め込み"#"記号を含む名前
データ・ディクショナリにいくつかの標準配列索引名を定義し、すべてのプログラムで使用できるようにしておくことを強くお勧めします。少なくとも、以下の索引フィールドを定義することをお勧めします。
名前 |
タイプ |
長さ |
小数点以下桁数 |
---|---|---|---|
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にすることは避けてください。後で問題が生じます。
(いかなる状況でも)配列索引フィールドで他のフィールドをオーバーレイしたり、他のフィールドで配列索引フィールドをオーバーレイしないでください。
この配列から索引によって参照できるように、連続した記憶域にグループ化する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パラメータは、相互に排他的です。いずれか一方を指定してください。両方を指定することはできません。
この配列で完全または部分的にオーバーレイするフィールドの名前を指定します。RDMLXフィールドをオーバーレイすることはできません。また、RDMLXフィールドで他のフィールドをオーバーレイすることもできません。
完全なオーバーレイが必要な場合は、配列の合計長さ(バイト数)とオーバーレイするフィールドの合計長さ(バイト数)が同じでなければなりません。
部分的なオーバーレイが必要な場合は、配列の合計長さ(バイト数)が、オーバーレイするフィールドの合計長さ(バイト数)より短くてもかまいません。
このパラメータの任意指定の開始位置コンポーネントを使用すると、配列で、オーバーレイするフィールドのコンポーネントのみを部分的にオーバーレイすることができます。
必要なオーバーレイが完全か部分的かを問わず、オーバレイするフィールドの終了位置を越える配列を定義しないでください。このルールが守られないと、予期しない結果を招きます。
DEFINEまたはOVERRIDEコマンドのTO_OVERLAYパラメータを使用して、このパラメータで参照されるフィールド自体で他のフィールドをオーバーレイしないでください。
OVERLAYINGパラメータとOF_FIELDSパラメータは、相互に排他的です。いずれか一方を指定してください。両方を指定することはできません。
配列内で使用するデータ記憶域のタイプを指定します。有効なタイプは以下のとおりです。
*CHAR |
配列に文字または英数字データが保管されます。LANSAディクショナリ・タイプ"A"に相当します。 |
*PACKED/*DEC |
配列にパック10進数データが保管されます。LANSAディクショナリ・タイプ"P"に相当します。 |
*SIGNED |
配列に符号付きまたはゾーン10進数データが保管されます。LANSAディクショナリ・タイプ"S"に相当します。 |
OF_FIELDSパラメータを使用するときは、このパラメータを指定しないでください。このパラメータの値は、OF_FIELDSパラメータで指定されたフィールドのタイプから自動的に導き出されます。
配列に保持する項目の合計数を指定します。有効な値は、1〜9999の整数値です。
OF_FIELDSパラメータを使用するときは、このパラメータを指定しないでください。このパラメータの値は、OF_FIELDSパラメータで指定されたフィールド数から自動的に導き出されます。
配列内にある個々の項目の合計長さを指定します。
タイプ*CHAR配列の場合、この値は1〜256の整数でなければなりません。
タイプ*DEC、*PACKED、および*SIGNED配列の場合、この値は1〜30の整数でなければなりません。ここで指定する値は、数値フィールドに保持される合計桁数です。パック10進数フィールドの場合、この値は、配列の各項目がメモリー内で占有するバイト数を表しません。
OF_FIELDSパラメータを使用するときは、このパラメータを指定しないでください。このパラメータの値は、OF_FIELDSパラメータで指定されたフィールドの長さから自動的に導き出されます。
配列の各数値項目に保持される小数点以下桁数(桁数であって、バイト数ではない)を指定します。
タイプ*CHAR配列の場合、この値は無視されます。
タイプ*DEC、*PACKED、および*SIGNED配列の場合、この値は0〜9の整数でなければなりません。
OF_FIELDSパラメータを使用するときは、このパラメータを指定しないでください。このパラメータの値は、OF_FIELDSパラメータで指定されたフィールドの小数点以下桁数から自動的に導き出されます。