最近のアクセス:
ページ
履歴
バックリンク
式に関する用語の変更点
GeneXus X Evolution 3
以降で変更された用語があります。「式のベーステーブル」は「コンテキストテーブル」に変更され、「ナビゲート対象テーブル」が「式のベーステーブル」に変更されました。
例
:
ある旅行代理店で、すべての国の名前と、各国の観光スポットの数を表示するリストが必要であるとします。
この要求を解決するために、Procedure オブジェクトを作成して ListCountriesWithAttractionsQty という名前を付けます。ソースでは、For each 内に「print Country」と記述し、printblock に CountryName 項目属性を表示する目的も記述します。
レイアウトに移動し、Country という名前の新しい printblock を挿入して、その中に CountryName 項目属性を追加します。
ソースに戻ります。このように定義された For each は、すべての国を含むテーブルをナビゲートし、クエリされた国の名前を表示します: 後は各国の観光スポットの数を出力するという要件を解決するだけです。これを実装するにはどうすればよいでしょうか。
ローカルの式を使用して計算を行います。変数を定義し、Count 式から返される結果をその変数に割り当ててみましょう。
観光スポットの数をカウントするので、ATTRACTION テーブルの項目属性をかっこ内に含める必要があります。
かっこ内の参照される項目属性がナビゲートするテーブルが式によって決められます。ここでは、観光スポットの数をカウントするので AttractionName 項目属性を含めました。GeneXus はその意図を正しく認識しています。
式は For each コマンド内で定義されるため、式がナビゲートするテーブルが決められた後で、GeneXus は For each のベーステーブルと式がナビゲートするテーブル間の関係が見つかるかどうかを分析します。
ここでは、2 つのナビゲーションに共通の項目属性 (CountryId) があるため、For each がナビゲートする
各国の
観光スポットの数がカウントされます。
コンテキストテーブル: COUNTRY
式のベーステーブル: ATTRACTION