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

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

2012年9月4日火曜日

返答文書の作成方法とビューの表示方法

9月になりました(え?とっくになってる?)・・・
8月末で、どこぞの掲示板が一旦終了になりました(何度目の終了だろうか・・・復活するたびに、以前のデータがなくなっていくのが切ない。もったいないよなぁ)。
しかし!当ブログは、まだまだ閉鎖しません!


ということで?9月になったので、気持ちも新たに、ボタンをクリックしましょう!
にほんブログ村 IT技術ブログへ


さて、今回もXPagesです。
今回も、やっているようでやっていなかったシリーズです。

それはXPagesで返答文書を作成する方法です。
サンプルを見ていると、URLパラメータに文書UNIDを引き渡して・・・とか面倒くさいことをしていますが、
もっと簡単にできるんです。

知っている人は知っていると思うので、今日のは読まなくても良いですよ。

まず、準備として以下の4つをやっておいてください(もう、これらの説明は省きますので、過去の記事を参照願います)。
  1. 「文書」のフォームを作成します。
  2. 「文書」フォームを表示するためのXPageを作成します。
  3. 「返答」のフォームを作成します。
  4. 「返答」フォームを表示するためのXPageを作成します。

返答文書を作成するには、「文書」フォームを表示するためのXPageに仕掛けを施すので、そのXPageを開きます。
ボタンコントロールをドラッグ&ドロップします。
ボタンのラベルは、「返答の作成」とします。
また、可視の式を「!(document1.isEditable())」としておきます。
ここで、document1とは、フォームのデータソース名を表しています。
返答の作成ボタンのプロパティ

次に、このボタンのイベントビューを開きます。
[アクションの追加]ボタンをクリックして、アクションを追加します。

アクションは、「返答文書の作成」を選択します。
また、開くページの名前は、あらかじめ準備しておいた「返答」フォームを表示するためのXPageを選択します。
ここでは、「Response」という名前にしてあります。
返答文書の作成アクション

さらに、親文書IDを引き継ぐために、計算する必要があります。
「親文書ID」の右側にある◇をクリックして、「値の計算...」を選択します。
スクリプトエディタの画面になるので、
document1.getDocument().getUniversalID()
と入力します。
親文書IDを算出

これで、XPage を保存すればOK!です。

しかし、これではビュー上にどのように表示されるか分かりません。
ということで、ついでにビューでの表示方法を実装してみましょう。

といっても、すでに方法が紹介されています。
XPages Tips : ビューコントロールで返答文書をインデント表示する


これだと、少し説明が少ないので、補足(蛇足?)のつもりで、書きます。

XPagesなので、ビューは普通に作成します。
ポイントは、次の3つ。
  1. ビューの選択式は、文書と返答文書が 両方とも表示されるようにすること
  2. 1つの列に文書と返答文書のフィールドが表示されるようにすること
  3. ビュープロパティの「返答文書を階層表示にする」にチェックを付けること(下図参照)
ビューのプロパティ

次に、このビューを表示するためのXPageを作成します。
普通にビューコントロールをドラッグ&ドロップした場合、階層表示されません(下図参照)。
せっかく、ビュープロパティを設定したのに意味がありません。
ビューコントロールを追加しただけの状態

そこで、先ほどご紹介したサイトに書いてある設定を施します。

まず、階層表示させたい列を選択します。
その状態でプロパティビューの「表示」タブを開きます。
「応答のインデント」というチェックがあるので、そこにチェックを付けます。
※この部分ですが、Lotus Domino Designerのバージョンにより、若干設定が異なっています。それっぽい箇所にチェックを付けてください。
応答のインデント

これで、XPage を保存します。
Webブラウザで表示すると、下図のようになり、階層表示されているのが分かります。
階層表示のビュー


ここまで出来れば、ディスカッションDBを作成するのも簡単ですね。
是非、作成してみましょう!




【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ 

0 件のコメント: