データベース・ファイルの単一のレコードからだけでは配列のデータを取得できない場合、データベース・ファイルから複数のレコードを読み込んで、配列をロードしなければなりません。 それぞれのレコードによって、配列の要素 (単一または複数) にデータを提供します。 ILE RPG プログラムは、レコードを一度に 1 つずつ処理します。 したがって、配列全体の処理が行われるのは、配列情報の入っているレコードがすべて読み取られて、その情報が配列要素に転送された後になります。 配列全体がプログラムに読み込まれるまで、演算および出力操作を抑制すること が必要な場合があります。
例えば、ファイル ARRFILE2 の各レコードの桁 1 から 12 に、ある配列要素に関する情報が含まれているものとします。 このような場合には、変数指標を使用して、その配列要素の入力仕様をコーディングすることができます。 図 1 にあるように、レコードが読み込まれる前に、プログラムによって指標が設定されます。
*...1....+....2....+....3....+....4....+....5....+....6....+....7...
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++
DARRX S 12A DIM(6)
DN S 5P 0 INZ(1)
IFilename++SqNORiPos1+NCCPos2+NCCPos3+NCC................................
I........................Fmt+SPFrom+To+++DcField+++++++++L1M1FrPlMnZr....
IARRFILE2 AA 01
I 1 12 ARRX(N)
CL0N01Factor1+++++++Opcode&ExtFactor2;+++++++Result++++++++Len++D+HiLoEq
C IF N = %ELEM(ARR) * The array has been loaded
..... process the array
* Set the index to 1 to prepare for the next complete array
C EVAL N = 1
C ELSE * Increment the index so the next input operation will fill
* the next array element
C EVAL N = N + 1
C ENDIF