データプロバイダーを使いこなそう - 基礎編その2 シンプルな一覧画面

前回はデータプロバイダーの基本的な説明をしました。今回は具体的にデータプロバイダーを作成する手順を見ていきましょう。

1.SDT/BCの定義

まず必要なのはデータプロバイダーにOUTPUTさせる型、つまりSDT(構造化データタイプ)又はBC(ビジネスコンポーネント=トランザクション)です。

用途に応じてSDTを作成するか、対象となるトランザクションオブジェクトのBusiness ComponentプロパティをYesにしビジネスコンポーネント化します。

SDTの定義
トランザクションの構造をそのままSDTにする場合は、フォルダービューから
トランザクションオブジェクトのアイコンを空のSDTへドラッグ&ドロップ
すると構造がコピーされます


2.データプロバイダーの定義

データプロバイダーを作成する場合、Sourceセクションを一から記述する事もできますが、もっと手軽に定義する方法があります。SDTの作成方法と同様にSDTもしくはBC(トランザクションオブジェクト)をフォルダービューからドラッグ&ドロップするだけです。

SDTをドラッグ&ドロップした結果。
SDTはデータの入れ物(型)でしかない為、GeneXusは
INPUTが何になるか推測できません。
このため右辺はコメントが展開されます。

BCをドラッグ&ドロップした結果。
BC(トランザクション)=項目属性を持つため、GeneXusはINPUTとして
ベーステーブル・拡張テーブルの推論が可能。
従って右辺は項目属性が展開されます。

Sourceセクションが定義できたら、OutputプロパティにSDT/BCを指定する必要がありますが、ドラッグ&ドロップで定義すると自動的に設定されます。

OutputプロパティにCustomerトランザクション(BC)が設定されている

CollectionプロパティをTrueにするとコレクションとして返される

3.Webパネル(Grid)の作成

データプロバイダーはデータをOUTPUTするオブジェクトですので、それを利用する局面は色々ありますが、ここでは結果がわかりやすいWebパネルを作成します。

データプロバイダーを作成する時に使用したSDTを
Webパネルの変数として定義します。
用途が一覧(Grid)であればコレクションにします。


コレクション変数をWebFormに貼り付けます。


最後にRefreshイベントにてデータプロバイダー呼び出しを記述します。


4.実行結果

ビルド・実行した結果です。




データプロバイダーを使用する目的として、「簡潔な記述=手間を減らす」という事がありますが、他にもオブジェクトを機能分割して一つ一つのオブジェクトの記述量を減らすメリットもあります。(Webパネルのイベントセクションに大量なコードを記述していませんか?)



次回はもう少しデータプロバイダーに手を加えてみます。


コメント

このブログの人気の投稿

データプロバイダーを使いこなそう - 応用編その4 スケジューラー 補足編

HTMLヘッダーにあれこれ直接追加したいとき

GeneXusにおけるWebアプリケーションセキュリティ対策 - OWASP 2010 Top10 Security Risks in GeneXus Applications