最近のアクセス:
データプロバイダーのグループステートメント

以前のバージョン

これは、データプロバイダーの出力ベースの宣言型言語の 3 つの主要なコンポーネントのうちの 1 つです。
下位のエレメントまたは別のグループのセットを並べ替えます。コレクションも、コレクション以外も対象です。GeneXus では、グループが反復グループかどうかを識別します。反復グループの場合、グループの動作は For Each と似ており、多くの節を使用できます。

構文

<グループステートメント> ::=
<グループ名>
[ <グループのプロパティ> ]          
[ From <ベーストランザクションのリスト> ]
[ <Order リスト> ]
[ <データセレクターの使用> ]
[ <固有の項目属性のリスト> ]
[ <入力> ]
[ <条件リスト> ]
'{'
{<変数ステートメント> | <エレメントステートメント> | <サブグループエレメントの挿入><グループステートメント>}...
'}'
入力値の説明:
<グループ名>::= [ @ ] <名前>
出力内のグループ名で、出力 SDT または BC のエレメント名です。
<グループのプロパティ>::= Default | NoOutput | OutputIfDetail | Paging | One
  出力をより適切に制御できるように設計されています。これには次のものがあります:
Default: グループは条件を満たさないが、グループの代わりに何かを出力する必要がある場合。
NoOutput: グループ自体は出力せず、下位のエレメントだけを出力させる必要がある場合。
OutputIfDetail: 内部にグループ (子グループ) を含み、内部のグループ (子グループ) のエレメントがあるときのみ出力する場合。
Paging: 出力に含めるレコード数を制御する場合。
One: 複数のナビゲーションから最初のレコードのみを返す場合。
<ベーストランザクションのリスト>::= For Each コマンドベーストランザクション節と同じ。 
<Order リスト>::= For Each コマンドOrder 節と同じ。
<データセレクターの使用>::= For Each コマンドの Using <データセレクター> 節と同じ。
<固有の項目属性のリスト>::= For Each コマンドUnique 節と同じ。
<入力>::= Input {<for キーワードなしの反復実行>|<for キーワードなしの Input>}
コレクション、配列、行列の変数をスキャンすることで、データベース以外のソースから取得した各アイテムの値を使用してグループの本文で処理を行う必要がある場合。<for キーワードなしの反復実行><for キーワードなしの Input> の構文、および詳細情報については、「Input 節」を参照してください。
<条件リスト>::= For Each コマンドWhere 節と同じ。
   
<変数ステートメント>::= <変数名> '=' <式>
<エレメントステートメント>::= <エレメント名> [ '=' <式> ] [ <エレメントのプロパティ> ]  
     入力値の説明:
<式>::= <条件付きの Horizontal 式> | <条件付きの Aggregate 式> | <条件付きの Compound 式>
条件付きの (Horizontal 式Aggregate 式、または Compound 式) です。つまり、複数の条件式を使用できます。
構造化された出力を返すデータプロバイダーまたはプロシージャー呼び出しの場合があります。その場合、出力のデータタイプは、<変数名> または <エレメント名> のデータタイプと一致する必要があります。
<エレメントのプロパティ>::= ' [ '<既定>' ] ' ' [ '<XML 情報>' ] '
<XML 情報>::= ' [ ' XmlType = { attribute | cdata | element | value } ' ] '
詳細については、「データプロバイダーのエレメントステートメント」を参照してください。
<サブグループエレメントの挿入>::=  <サブグループ名>.Insert(  [ <パラメーターのリスト> ]
  <サブグループ名> は、データプロバイダーのサブグループステートメントによってサブグループとして宣言する必要があります。
   

以前のバージョンの GeneXus の Defined By 節 (構文で <条件リスト> の後に配置) は、記述することはできますが、ベーストランザクション節に対して意味がなくなります。

Customers
{
   Customer
      Order CustomerName
      where CustomerBalance > 1000
   {
         Code = CustomerId
         Name = CustomerName
   }
}
注:
  • Order 節および Where 節は入力項目属性にのみ適用され、エレメントには適用されません。例: 「Order CustomerName」は有効ですが、「Order Name」は有効ではありません。事実、Order はデータベースにアクセスします。
  • 動作は For Each コマンドと同じです。つまり、ベーステーブルを特定する方法が同じで、order 節と where 節で条件も指定できます。また、where 節の USING Data Selector 節と IN 演算子の動作も同じです。したがって、For Each と同じ構文と同じ方法で、データセレクターをデータプロバイダーのグループでも使えます。「Data Provider における Data Selector の例」を参照してください。




サブページ
Created: 15/01/07 22:50 by Admin Last update: 19/03/26 22:42 by Admin
カテゴリ
Powered by GXwiki 3.0