最近のアクセス:
ネイティブ モバイル アプリケーション用の複数選択可能なグリッド

GeneXus では、グリッドに複数選択を定義し、for each selected line コマンドを使用してグリッド内で選択したすべてのアイテムをスキャンできます。選択したすべてのアイテムに対してアクションを実行するコードは、次のようになります。
for each selected line  [ in <GridName> ] 
     <各アイテムに対して実行するアクションまたは一連のアクション>
endfor

複数選択の追加

複数選択のアクションの使用方法を詳しく説明するために、一連の顧客が存在し、合計金額に応じて一部の顧客に 25% の税金を適用するとします。

手順 1 - UI の動作の設定

以前は、Customer トランザクションオブジェクトを次のように作成し、WorkWithDevices パターンを適用していました。
イメージ:36211.png
WorkWithDevicesCustomer の List セクションのグリッドコントロールでは、次のプロパティを設定します。
イメージ:36212.jpg

手順 2 - アクションの作成

「Add tax」という新しいアクションを作成します (アプリケーションバーで右クリックし、 [ ボタンを挿入 ] を選択)。
イメージ:36213.jpg
このアクションは ApplyTax プロシージャーを実行し、選択したアイテムに 25% の利子を追加して CustomerAmount を更新します。このプロシージャーで次のコードを記述する必要があります。
for each
     CustomerAmount = CustomerAmount * 1.25
endfor
このプロシージャーに次に示す Parm ルールを定義して、For Each コマンドでアイテムを自動的にフィルタするようにします。
Parm(in:CustomerId);

手順 3 -アクション実行コードの記述

最後に、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. 更新するアイテムを選択します。アイテムの左側にあるチェックボックスをタップすると選択できます。
イメージ:36214.jpg
2. 選択が完了したら Add tax アクションをタップして実行し、25% の税を適用します。
イメージ:36215.jpg
3. デバイスを再表示すると、適切に変更された合計金額が表示されます。
イメージ:36216.jpg

  • 異なるグリッドに対する複数の for each selected line コマンドを持つアクションがある場合、ユーザーインターフェースの動作はプラットフォームの既定動作です。
  • for each selected line コマンドで使用する項目属性は、適切に機能するようにフォーム上のグリッド内になければなりません。
  • for each selected line in <grid> コマンドでは、SD パネルまたは WorkWithDevices オブジェクトにグリッドが 1 つしかない場合、グリッドの名前はオプションです。
  • グリッド行テーマクラスの背景色が強調表示されている場合は、この色が選択アイテムのマーク付けに使用されます。
  • Android デバイスの場合、選択するためのユーザーインターフェースは、オペレーティングシステムのバージョンによって異なることがあります。




サブページ
Created: 14/09/18 03:09 by Admin Last update: 22/03/14 00:41 by Admin
カテゴリ
Powered by GXwiki 3.0