当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2011年12月3日土曜日

おじさんSEが学ぶXPages(9)

今週もやって参りました。 週末恒例のブログの時間です。
もうしばらく週末の更新にお付き合いください。

今回もこのボタンをクリックしてから読んでください。
にほんブログ村 IT技術ブログへ



さて、このシリーズも連載9回目です。なんでこんなに長いのか?
実は、この連載はシナリオはありません。実際に作りながら書いてます。
なので、同じような事を書いたり、回によって長さが違ったりしてます。
下手にシナリオができあがっていると、都合の良い結果になってしまいそうなので、こうしています。
以上、言い訳でした。

今回は、「貸し出し画面」の作成からです。
基本的には、前々回から前回にかけて行った「蔵書」フォームをXPageに取り込む方法と同じです。
ということで、まずは「貸し出し画面」をカスタムコントロールとして作成します。
「LendData」という名前でカスタムコントロールを作成しましょう。
次にデータソースの定義を行いますが、前回と同じでは芸がありませんので、違うやり方を紹介します。

プロパティビューを開きます。
その中に「データ」タブがありますので、そこを開きます。
データタブのプロパティ画面が表示されたら、[追加]ボタンをクリックして、「Domino文書」を選択します。(下図参照)
データソースの追加

すると、データソースの右側に「データソース」を定義する画面が表示されるので、「貸し出し」フォームを登録します(下図参照)。
この赤丸で囲った画面。前回はダイアログとして表示されていたものですが、このようにプロパティビューで操作すれば、同一画面内で操作ができるので楽ですね。
データソースの定義

しかし、なんで複数の方法を用意したんでしょうね?バグの温床になると思うのですが・・・

さて、これでこのカスタムコントロールで使用するデータソースの定義が出来ましたので、カスタムコントロール内の画面に反映させます。
「データ」ビューを開いて、表示されているフィールドすべてを選択して、カスタムコントロール内にドラッグ&ドロップします。

「データバインドコントロールの選択」ダイアログが表示されるので、
ラベルはそれぞれ以下のように変更します。
Lend By:    → 貸出者:
Book Name:  → 蔵書名:
Lending day:  → 貸出日:
Lending term: → 貸出期限:
Status:     → 状況:
Return day:  → 返却日:

また、状況と返却日は、コントロールを「計算結果フィールド」にしておきます。
データバインドコントロールの選択

すると、下図のような画面になるはずです。
貸し出しフォームをカスタムコントロールに追加した画面

ここで前回説明しなかった事があります。
前のダイアログで「生成されたコードに送信ボタンを追加する」にチェックが入っていると、[Submit]というボタンが追加されます。
Lotus Notes/DominoでWebアプリを作った事がある方は分かるかと思いますが、これはいわゆる保存ボタンの代わりになります。

ラベルを[保存]に変更して、「可視」の設定を変更すれば、同じ役割になります。
ということで変更しておきましょう。
「可視」の設定ですが、データソース名をLendingDocumentに変更してあるので、
LendingDocument.isEditable()
になりますので、注意してください。

その他、[キャンセル]ボタンを追加しておきます。
こちらのボタンの種類も[保存]に併せて変更しておきます。
「プロパティ」ビューの「ボタン」タブの中の右側の方に「オプション」というところにボタンの種類があるので、「キャンセル」に変更します。
ただし、イベントは追加しておいてください。その際、開くページは「前のページ」としておいてください。
キャンセルボタンを追加


また、フォームの各フィールドですが、これらについても、サイズを変更する事が出来ます。
蔵書名などは、デフォルトのままだと狭くて表示しきれないと思うので、幅を変更すると良いでしょう。(その場合、「蔵書登録」画面の方も変更しておきましょう。)
筆者の環境では、デフォルトで142.0ピクセルだったので、とりあえず300ピクセルに変更してみました。


また、「貸出日」と「返却期限」にデフォルトの値をセットしてみましょう。
「貸出日」を選択して、「プロパティ」ビューの「データ」タブを開きます。
「デフォルト値」の右にある◇をクリックして、「値の計算」を選択します。
フィールドのデフォルト値を設定

「スクリプトエディタ」ダイアログが表示されるので、値を書き込みます。
「貸出日」は、今日を設定したいので、@Today関数をセットします。
XPagesで使える関数は、通常のノーツとは違う部分があるので、どれが使えるか分からない場合は、左側の部分で「参照」タブを開き、「@Functions」を選択します。
デフォルト値の追加

設定が出来たら、「返却期限」のデフォルト値を設定します。
今回は、返却期限は一般的に用いられる「二週間後」に設定します。
スクリプトエディタを開いたら、
@Adjust(@Today(),0,0,14,0,0,0)
と入力します。

今日から、14日後を設定するという意味の関数ですね。

状況と返却日は、ここでは設定しませんので、デフォルトのままで良いです。

ここまで出来たら、カスタムコントロールを保存します。


そして、「Lending」XPageを開きます。
この画面はまだ何もさわっていないので、空白になっているはずです。
最初に、「container」コントロールをドラッグ&ドロップします。
次に、今作成した「LendData」コントロールを「container」コントロールの編集領域にドラッグ&ドロップします。
LendDataコントロールを組み込む

これで「Lending」を保存します。

ついでに、貸出ボタンを登録しておきましょう。
カスタムコントロールの「LendingView」を開いて、先頭部分にボタンを配置します。
ボタンのラベルは「蔵書貸出」として、
イベントは「Lending」ページを新規文書として開くとしてください。
蔵書貸出イベント

出来たら、「LendingView」カスタムコントロールを保存します。


これで画面系は一通り出来ました。
ただし、この状態では、「蔵書登録」画面と 「蔵書貸出」画面が連動していません。

次回からは、このようなアプリケーションの機能を作っていきましょう。

ではでは。



Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: