2010/01/12

XPages Tutorial Part 40 : 一つの XPage に 2 つのデータソース

Two Data Sources One Xpage {OriginalResource}

ロケーションに所属する人々の情報を表示する表の上部にページャを配置してきましたが、ロケーションに関する住所や代表番号などの情報も一緒に表示されるといいかもしれません。

XPages ではデータとして単一のソースしか割り当てることができないという制限は一切ありません。
そこで今回、Location XPage には既に Person に関連したデータソースが定義されていると思いますが、追加で Location 文書に関連するデータソースも追加していくことにします。
「content_Location」カスタムコントロールを開き、カスタムコントロールの「データ」セクションを見てください。

ここでは以前作成したデータソースとして「peopleView」が定義されているのが確認できます。では「追加」ボタンをクリックし、「Domino 文書」を選択してください。
このデータソースには「locationDoc」と名前を付け、現在のデータベースにある「location」フォームに基づくものとします。そして、データソースに対して文書 ID を設定する必要があります。

データソースに対して文書 ID を設定する方法はいくつかありませが、「locationfilter」というセッションスコープの変数を使用して特定するつもしrです。
var locView:NotesView = database.getView("lkp_Locations");
var locDoc:NotesDocument = locView.getDocumentByKey(sessionScope.locationfilter);
return locDoc.getUniversalID() 
このコードでは、locView という変数を作成し、lkp_Location ビューをセットします。
加えて locDoc という 2 つ目の変数を作成し、NotesView.getDocumentByKey でセッションスコープの locationfilter を使って文書を参照しています。
ここで習得した文書の Universal ID を 返しています。 JavaScript で書かれていますが、LotusScript と非常によく似ていることが分かります。

これでこのカスタムコントロール上で使用できるデータソースが設定できました。
そして、スクリーンの右側でこの文書のフィールドを使用するためのデータペインが表示されていると思います。


次のスクリーンは「content_Location」コントロールににいくつかのデータフィールドをドラッグインしたところです。



ブラウザでプリビューすると以下のように Location のデータが表示されるはずです。


以上です。少ないステップで 2 つのデータソースをひとつの XPage に使用できることがお分かり頂いたと思います。今回のケースはビューと文書でしたが、いくつでもそしてどの組み合わせでもデータソースとしてりようすることができます。

0 件のコメント:

コメントを投稿