最近のアクセス:
集計におけるデータセレクター

Aggregate 式 (集計式) で Data Selector オブジェクトを使用することができます。

構文

データセレクターは、次の文法に従って、USING 節で集計式の中で参照されます:
<AggFormulaName> (<Expression>,  [ <AggregationCondition> ] ,  [ <DefaultValue> ] )
構文の表記規則の表示
入力値の説明:
AggFormulaName
   次のうちのいずれかです: Find、Max、Min、Sum、Count、Average。
Expression
   検索するか、最大値、最小値、合計、または平均を求めるエクスプレッションです。項目属性 (保存済みか数式)、または項目属性、変数、定数を使用するエクスプレッションを指定できます。
AggregationCondition
    [ <Condition> ] [ USING <DataSelector> '(' <Parameters...> ')' ] という構造で指定します。
DefaultValue
   集計条件に一致するレコードがない場合に返される値です。これは定数であり、オプションです。

  • Count 式では、最初のパラメーターとしてエクスプレッションは使用できません。項目属性である必要があります。
  • Sum および Count 式では、エクスプレッションの評価の結果は数値である必要があります。
  • データセレクター (USING 節) を使用する場合:
    • 式の定義の中でプロシージャーの使用はサポートされません。そうでない場合は、メッセージ spc0026 が表示され、式は解決されません。 
    • 考慮されるのは、Data Selector オブジェクトの条件です (順序でも他の何かでもありません)。
  • ユーザー変数は、インライン式でのみ使用できます。

次の Transaction オブジェクトがあるとします:
Country
{
  CountryId*
  CountyName
}

Customer
{
  CustomerId*
  CustomerName
  CustomerStatus
  CountryId
  CountyName
}
「ActiveCustomers」データセレクターの定義は次のとおりとします:
イメージ:54801.jpg
1) アクティブな顧客の総数を数えるには、イベントやソースで次のコードを定義できます:
&NumberActiveCustomers = Count(CustomerName, USING ActiveCustomers())
2) 国別にアクティブな顧客の数を数えるには、次のコードを定義できます:
For Each Country
   &NumberActiveCustomers = Count(CustomerName, USING ActiveCustomers())
EndFor
GeneXus が For Eachベーステーブルを判別する際、Count 式の最初のパラメーターである CustomerName 項目属性は考慮しないという点に留意してください。CustomerName 項目属性は式の定義に属します。
For Each のベーステーブルは COUNTRY です (Countryベーストランザクションとして言及されているため)。
計算式で問い合わされるテーブルは、CUSTOMER です。これは、計算式とデータセレクターの定義にある項目属性が、CUSTOMER テーブルに属しているからです。
また、ナビゲートされる COUNTRY と CUSTOMER の 2 つのテーブルには、CountryId という共通の項目属性があります: したがって、For Each コマンドで問い合わされるどの Country についても、For Each 内 (インライン) で定義した集計式は、式がトリガーされた時点で For Each で問い合わされている Country に属するアクティブな Customer だけを計算の対象にします。

参考情報

グリッドにおけるデータセレクター
Data Provider における Data Selector
For Each コマンドにおけるデータセレクター

動画

イメージ:20668.png Data Selectors
  

バックリンク
カテゴリ: Data Selector オブジェクト[ Data Selector ] プロパティ[ Data Selector ] プロパティ (GeneXus 18 Upgrade 2 以前のバージョン)
Data Provider における Data SelectorFor Each コマンドにおけるデータセレクターグリッドにおけるデータセレクターグリッドにおけるデータセレクター (GeneXus 18 Upgrade 2 以前のバージョン)
式の使用例目次: GeneXus - 目次分析コード (spc0050 ~ spc0099)
サブページ
Created: 14/09/18 03:17 by Admin Last update: 25/12/10 18:03 by Admin
カテゴリ
Powered by GXwiki 3.0