最近のアクセス:
例: 「CustomersProvider」データプロバイダー

データプロバイダーは GeneXus のオブジェクトであり、簡単でハイレベルな宣言型でデータコレクション (例: 顧客一覧) やデータ構造 (例: 顧客データ) を提供することを目的としています。

出力は階層構造です: GeneXus では、これらを構造化データタイプ (SDT)、ビジネスコンポーネント (BC)、または SDT や BC のコレクションとして表します。

データプロバイダーの長所は、出力にフォーカスしている点にあります。これにより、GeneXus アナリストは、階層出力構造のデータアイテムをどのように取得するかを宣言するだけで済みます。

次に示すように、Customer トランザクションが定義済みであるとします:
イメージ:6297.jpg
たとえば Web パネルなどのほかのオブジェクトに送信できるよう、顧客データベースをコレクションにロードする必要があると仮定します。
イメージ:6311.jpg
最初に、顧客のデータをロードするための SDT を定義する必要があります。ここで注意しなければならないのは、SDT にトランザクションと同じ名前は付けられないことです。したがって、SDT の名前を Clients にします。次に、コレクションを操作する 2 つの方法について、次のことを検討します。次に示すように、どちらを選択することもできます。  

1 つ目のオプション

Clients コレクション SDT を定義します:
イメージ:6312.jpg
次に、データプロバイダーを作成します。このデータプロバイダーの名前を「CustomersProvider」とします。作業を減らすために、データプロバイダー作成後に Clients SDT をドラッグします。ソースは次のようになります:
イメージ:6314.jpg
ユーザーは、右側に順に CustomerId および CustomerName の値を入力するだけです。
[ Output ] プロパティは、ドラッグ アンド ドロップ操作で自動的に設定されますが、このプロパティには特に注意が必要です。次の図に、データプロバイダーの出力にする SDT を指定する方法を示します:
イメージ:6300.jpg [ Collection ] プロパティに注意してください。もう 1 つのオプションでは、このプロパティを True に変更します。
以降の手順は簡単に行えます。上の画像の Web パネルのような顧客一覧を必要とするオブジェクトから、データプロバイダーの出力を受け取るには Clients SDT データタイプ変数を定義するだけで済みます (たとえば、XML フォーマットに変換するだけ)。
&clients = CustomersProvider()
&xml = &clients.toXML()
詳細については、「ほかの GX オブジェクトでのデータプロバイダーの使用」を参照してください。

2 つ目のオプション

Client の SDT を定義します:
イメージ:6313.jpg
1 つ目のオプションと同様に、ここで「CustomersProvider」データプロバイダーを作成する必要があります。前の手順と同じ方法で Client の SDT を [ Source ] エリアにドラッグすると次のようになります:
イメージ:6315.jpg [ Output ] プロパティ:イメージ:6316.jpg
このプロパティは変更する必要があります。顧客のコレクションをロードする必要があるため、 [ Collection ] プロパティを次のように変更します:イメージ:6317.jpg
[ Collection ] を True に変更すると、 [ Collection Name ] プロパティが表示されます。コレクションの名前を入力して、その名前のグループをルートに追加することにより、ソースを変更します。
イメージ:6318.jpg
以降は 1 つ目のオプションと同様です (Client の SDT データタイプのコレクションとして &clients 変数を定義します)。
 




サブページ
Created: 14/09/18 03:18 by Admin Last update: 21/10/28 23:31 by Admin
カテゴリ
Powered by GXwiki 3.0