当ブログに掲載しているサンプルは、すべて利用者の自己責任とします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。
xxのようなサンプルを作って欲しいとかxxxの作り方を教えて欲しいというお問い合わせには応じていません。
このようなお問い合わせは、株式会社エフまでご一報ください。

2020年1月24日金曜日

フレームに表示する内容を動的に変更してみる

こんにちは。2020年もHCL Masterになってしまいました。
昨年(2019年)はコミュニティ活動はほぼできてなかったというのに・・・

なので、今年は少しブログにも力を入れようかと思います(思うだけならいいかな?)。
1月ももう1週間で終わろうという時期ですが、2020年初ブログといきます。

今日は、フレームセットのちょっとしたテクニックです。
フレームセットを使ったNotesアプリケーションを普段から開発している方にはわかりきった話かと思いますが、あまり紹介されていないようなのであえて書きます(自分自身の備忘録でもあります)。


通常、フレームセットはフレームを区切って、それぞれのフレームに何を表示させるのかを選択します。
よくあるフレームセットはこんな感じでしょうか。
フレームセットのサンプル

左側にアウトライン用のフレーム、右上がビュー表示用のフレーム、右下はプレビュー用のフレームです。
それぞれのフレームに何を表示するかはプロパティ画面で設定します。
下図は、「(一般用アウトラインページ)」というページを表示させるように設定したものです。
「種類」では"名前付き設計要素"、"ページ"を選択して、
「値」は黄色のフォルダアイコンをクリックして、設計要素を選択しています。
フレームのプロパティ

しかし、ここでよくプロパティを注目してみると・・・
「値」を設定する箇所に「@」というアイコンがあります。
ここをクリックしてみましょう。
名前付き要素の式の編集

なにやら新しいダイアログが表示されました。
「名前付き要素の種類についての式」には"Page"、「名前付き要素の名前についての式」には"pgOutlineGeneral"と書かれています。
※英語になっているのは別名を設定しているためです

はい。ここは、フレームに表示したい内容を式で記述できるのです。
となれば、ここに条件式を記述することでフレームに表示する内容を動的に変更できるのではないでしょうか?

やってみましょう。
式を修正

内容はこのようなものです。
[Admin]ロールを付与されている場合とそうでない場合とで表示するページを変更しています。
@If(@IsMember("[Admin]";@UserRoles);"pgOutlineAdmin";"pgOutlineGeneral")

これでフレームセットを保存して、Notesアプリケーションをフレームセットから開いてみます。
[Admin]ロール保有時
 こちらは、[Admin]ロールを付与されているユーザーが開いた場合です。

一般ユーザーが開いた場合
続いて[Admin]ロールが付与されていないユーザーが開いた場合です。
一目瞭然ですね。左側のフレームの部分が異なっています。

これを応用すると、
設定文書を作成しておき、その値によって表示させるフレームを変更したりすることができます。
環境設定文書の値によって、表示するフレームを変更している

これは、弊社のNotesアプリケーションの画面ですが、環境設定文書の値によってフレームに表示する内容を変更しています(色違いのページを表示するようにしています…実際にはもう少し複雑なことをしています)。

また、クライアントのタイプによって表示するフレームそのものを変更するなんてこともできるでしょう。
そう、HCL Nomadで使う場合にも応用できる技になっています。

そうすれば、すでにあるフレームセットはそのまま使えて、Nomad用に新しくフレームセットを作成すれば、PCで見たときはきれいだけどモバイルだと・・・のように悩む必要もありません。

Notes/Dominoはいろいろな場面で使われることを想定して実装されてきたものです。
既存の機能を使いこなせば、10年以上前に作成されたアプリケーションでもきれいに生まれ変わらせることはできるでしょう。

さぁ、あなたもチャレンジ!




というところで今日はこの辺で・・・





Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
HCL Masterの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ