ここでは、
Panel オブジェクトにロードされる情報の参照先テーブルが GeneXus によって決定される仕組みについて説明します。
各レイアウト (
Panel オブジェクトまたは
Work With オブジェクトのいずれかの List ノード、Detail ノード、Section ノード) にそれぞれ対応する固定部分と、場合によっては 1 つまたは複数のグリッド (
構造化データタイプに関連付けられたグリッドではない) があります。
特定の場所 (後述) にレイアウトに関連する項目属性がある場合は、値を参照するコントロール (固定部分) で
ベーステーブルが使用されます。特定の場所にグリッドに関連する項目属性がある場合についても、同様にベーステーブルが使用されます。各ベーステーブルはそれぞれ個別に決定され、ナビゲーションも個別に行われます (並列の
For each コマンドのペアを使用する場合に似ています)。
固定部分のベーステーブルの決定に関連する項目属性には、次のものがあります:
- レイアウトの固定部分に含まれている項目属性。
- 並べ替え、検索、詳細検索、および条件で参照されている項目属性。
- For each コマンドの外側で、いくつかのイベントで使用されている項目属性。該当するイベントは次のとおりです: Refresh、およびレイアウトの固定部分やアプリケーションバーにおけるボタンまたはコントロールイベントに関連するすべてのイベント。
グリッドのベーステーブルの決定に関連する項目属性には、次のものがあります:
- グリッドに含まれている項目属性。
- 並べ替え、検索、詳細検索、および条件で参照されている項目属性。
- For each コマンドの外側で、いくつかのイベントで使用されている項目属性。該当するイベントは次のとおりです: Load、およびグリッド内のボタンまたはコントロールイベントに関連するすべてのイベント。
データベーステーブル間に次の関係があるものと仮定します:
SDPanel1 というパネルを作成し、パラメーターで受け取る国 (Country) とその国に属する顧客 (Customer) をこのパネルに表示するとします。この目的のために、次のレイアウトを定義しました:
ルール:
parm( in: CountryId);
さらに、国が貿易協定に署名している場合は、image1 が表示されるように設定します。同様に、グリッドにロードされる顧客に対する請求額が 1,000 ドルを超える場合は、image2 が表示されるように設定します。
また、3 つのボタンを挿入しています: アプリケーションバーに 1 つ (Add)、フォームに 1 つ (ViewInfo)、そしてグリッドに 1 つ (Billing...) です。各ボタンにはユーザーイベントを関連付けます。
対応するイベントタブは次のとおりです:
固定部分のベーステーブルの判断:
次の項目属性が考慮されます:
- Layout から: CountryName。
- Conditions から: none (条件は設定されていないものと仮定)。
- Events から: 'ViewInfo' からの CountryId ('Add' 内には項目属性なし)、Refresh からの CountryAggrement。
したがって、フォームのベーステーブルは Country になります。パネルには項目属性 (CountryId) で国識別子が渡されるため、等価の自動フィルタが指定されます。
グリッドのベーステーブルの決定:
次の項目属性が考慮されます:
- Layout から: CustomerName (グリッドの項目属性)。
- Conditions から: none (条件は設定されていないものと仮定)。
- Events から: 'Billing...' からの CustomerId および Load からの none (For each の外側には項目属性がないため)。
したがって、グリッドのベーステーブルは Customer になります。同様に、パネルには項目属性 (CountryId) で国識別子が渡されるため、等価の自動フィルタが指定されます。
両方のナビゲーションは、2 つの並列の For each コマンドに対応しているかのように個別に行われます。
ネイティブ モバイル アプリケーションのイベント
ネイティブ モバイル アプリケーションのサーバー側のイベント
パネルでイベントをトリガーする順序
ネイティブ モバイル アプリケーション用のグリッドでの表示順序とフィルタ