GeneXus では、
グリッドに複数選択を定義し、
for each selected line コマンドを使用してグリッド内で選択したすべてのアイテムをスキャンできます。選択したすべてのアイテムに対してアクションを実行するコードは、次のようになります。
for each selected line [ in <GridName> ]
<各アイテムに対して実行するアクションまたは一連のアクション>
endfor
複数選択のアクションの使用方法を詳しく説明するために、一連の顧客が存在し、合計金額に応じて一部の顧客に 25% の税金を適用するとします。
以前は、Customer
トランザクションオブジェクトを次のように作成し、WorkWithDevices パターンを適用していました。
WorkWithDevicesCustomer の List セクションのグリッドコントロールでは、次のプロパティを設定します。
「Add tax」という新しいアクションを作成します (アプリケーションバーで右クリックし、 [ ボタンを挿入 ] を選択)。
このアクションは
ApplyTax プロシージャーを実行し、選択したアイテムに 25% の利子を追加して CustomerAmount を更新します。このプロシージャーで次のコードを記述する必要があります。
for each
CustomerAmount = CustomerAmount * 1.25
endfor
このプロシージャーに次に示す
Parm ルールを定義して、For Each コマンドでアイテムを自動的にフィルタするようにします。
Parm(in:CustomerId);
最後に、Add tax アクションと関連付けられたセクションコードを次のように
Event セクションに記述します。
Event 'Add tax'
Composite
For each selected line in Grid1
ApplyTax(CustomerId)
Endfor
Refresh
EndComposite
EndEvent
注:
- SDT または BC コレクションベースのグリッドの場合、各アイテムにアクセスするには [ CurrentItem ] 実行時プロパティを使用します。
例:
For each selected line in Grid1
ApplyTax(&Customer.CurrentItem.CustomerId)
Endfor
&Customer は SDT または BC アイテムに基づく変数です。
1. 更新するアイテムを選択します。アイテムの左側にあるチェックボックスをタップすると選択できます。
2. 選択が完了したら Add tax アクションをタップして実行し、25% の税を適用します。
3. デバイスを再表示すると、適切に変更された合計金額が表示されます。
- 異なるグリッドに対する複数の for each selected line コマンドを持つアクションがある場合、ユーザーインターフェースの動作はプラットフォームの既定動作です。
- for each selected line コマンドで使用する項目属性は、適切に機能するようにフォーム上のグリッド内になければなりません。
- for each selected line in <grid> コマンドでは、SD パネルまたは WorkWithDevices オブジェクトにグリッドが 1 つしかない場合、グリッドの名前はオプションです。
- グリッド行テーマクラスの背景色が強調表示されている場合は、この色が選択アイテムのマーク付けに使用されます。
- Android デバイスの場合、選択するためのユーザーインターフェースは、オペレーティングシステムのバージョンによって異なることがあります。