1 次元または多次元配列、または構造化データ タイプ コレクションをスキャンします。
For &Var in &Variable()
code
Endfor
入力値の説明:
&Var
同じ
Array() のデータタイプを持つ必要のある変数を指定します。
&Variable()
単数または複数次元の配列、または構造を持つデータ タイプ コレクションに基づく変数の詳細を示します。
オブジェクト: Procedure、
Transaction、
Web Panel
ジェネレーター:
.NET、
.NET Framework 、
Java、RPG、Cobol、Ruby (GeneXus X Evolution 3 まで)
このコマンドを使用すると、任意の配列または構造を持つデータ タイプ コレクションの変数の処理やスキャンが可能になります。
注:
- スキャン中に配列の値を変更することはできません。これは、&Var の値の変更は、構造の範囲において、対応する変数の値を変更せず、変数の値の変更は &Var の値を変更しないことを意味します。
- スキャン中にベクトル位置を取得することはできません。取得するには、カウンターとしての変数を定義する必要があります。
- これらの構造をネストして複数の変数 (配列またはコレクション) をスキャンできます。この場合、同じく For In &Variable を持つサブルーチンが構造内でいつ呼び出されるのかを考慮します。
- For Each コマンドまたは Do While コマンドと同様に、Exit コマンドまたは Return コマンドなどのスキャンを中断させるコマンドを含めることができます。
次のコードは 1 次元配列に属しています。
&Var 変数内に配列の各値を格納します。
for &var in &arr()
… // コード
endfor
1 次元のベクトルの場合、コードは次のように展開します:
&x = 1
Do while &x <= rows(&arr())
&var = &array(&x)
... // コード
&x += 1
Enddo
2 次元の配列の場合、コマンドは相似しています:
for &var in &arr2()
… // コード
endfor
&arr2 の場合、展開したコードは次のとおりです:
&x = 1
Do while &x <= rows(&arr2())
&y = 1
Do while &y <= cols(&arr2())
&var = &arr2( &x, &y)
... // コード
&y += 1
Enddo
&x += 1
Enddo
SDT コレクションの場合:
Name |
Collection |
ItemName |
SDT01 |
True |
SDT01Item |
Itm1 |
Itm2 |
… |
コードは次のとおりです:
for &item in &collection
…
endfor
&collection は “SDT01”構造化データ タイプ コレクションに基づく変数で、&itemは“SDT01.SDT01Item”タイプに基づく変数です。
展開したコードは次のとおりです:
&x = 1
Do while &x <= &collection.count
&item.Itm1 = &collection.item(&x).Itm1
&item.Itm2 = &collection.item(&x).Itm2
... // コード
&x += 1
Enddo
Do While コマンド