slack

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

2010/01/14

XPages Tutorial Part 43 : 新規文書ですべてのフィールドを利用できるようにする

Enabling All Fields On A New Document {Original Source}

XPage を使用して新しく「Person」文書を作成できるようになりましたが、姓名やロケーションが編集モードになっていても編集できないようになっています。当事者以外のエンドユーザーに直接変更されるのを防ぐためでしたが、新規文書の作成時に限ってはこれを無効にしたいと思います。

ノーツクライアント開発では @IsNewDoc という関数があり、文書が作成されていてまだ保存がされていないかを確かめるために使用してきました。XPages では @IsNewDoc() を JavaScript で同様のことができます。

「content_Person」カスタムコントロールを開き、設計ビューから「FirstName」編集ボックスを選択します。プロパティで、「読み取り専用」プロパティをがチェックされているのが確認できます。
これを今回値の計算にし下の JavaScript を記述してください。
if(@IsNewDoc() == 1)
{
       return false;
} else
{
       return true;
}
読み取り専用に設定されていたすべてのフィールドにこのコードを設定してください。
カスタムコントロールを保存し、プリビューした後、新規の「Person」文書を作成し、すべてのフィールドが編集可能か確認してください。


編集モードになると、フィールドに対するラベルが表示されないものがいくつかあります。そこでラベルを追加して、新規文書の作成のときだけ表示されるようにしましょう。

ではラベルコントロールをドラッグインします。ドラッグインしたラベルコントロールのラベルには表示プロパティがありますが、右のダイアモンドをクリックし、先ほど出てきたコードと全く反対のロジックを記述します。


「content_Person」の設計を次のような見た目にしてみましょう。

表を追加するとフィールドやラベルの配置が楽になります。
ではこのカスタムコントロールを保存してブラウザで再読み込みして確認してみましょう。
下のようなページになるはずです。

次回は Location に省略値を与え、適切なロケーションのリストからドロップダウンで選択するといった方法を見ていきます。

0 件のコメント:

コメントを投稿