最近のアクセス:
For In Array/Collection コマンド

1 次元または多次元配列、または構造化データ タイプ コレクションをスキャンします。

構文


For &Var in &Variable()
    code
Endfor

入力値の説明:

&Var
     同じ Array() のデータタイプを持つ必要のある変数を指定します。

&Variable()
     単数または複数次元の配列、または構造を持つデータ タイプ コレクションに基づく変数の詳細を示します。

適用範囲


オブジェクト: ProcedureTransactionWeb Panel
ジェネレーター: .NET.NET FrameworkJava、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 コマンド









サブページ
Created: 14/09/18 03:45 by Admin Last update: 24/04/01 03:46 by Admin
カテゴリ
Powered by GXwiki 3.0