2009年12月20日日曜日

しょっちゅう変更されるトップページの実現について


アプリケーションを開いたときに特定の文書をトップページ(ホーム/初期画面)として開きたい、といった要望がときどきあります。
 
変更頻度がほとんどないなら「アプリケーションについて」などで代用することを提案するのですが、中には「毎日更新する」という精力的な方々もいらっしゃいます。
 
けれど、アクセス制御リストにおいてアプリケーションの利用者を編集者以下として設定している場合、ページのような設計要素を変更することができません。
 
そういった時はトップページ専用のフォームを用意して、アプリケーションの利用者が文書を作成できるようにしています。
 
フォームにはトップページを変更するためのアクションボタンがあり、それをクリックすると文書のUNIDをプロフィール文書へ設定します。
このプロフィール文書は特定の個人専用ではなく、皆が共通で利用することを想定しています。
 
アプリケーションを開いたときに必ず開くフレームセットでは、その中のトップページを表示するフレームでURLの式を次のように設定しています。
 
serv := @Left(@Name([Abbreviate];@Subset(@DbName;1));"/");
dbn := @ReplaceSubstring(@Subset(@DbName; -1); "\\"; "/");
docid := @Text(@GetProfileField("CommonProfile"; "MessageDocumentUNID"; "Common"));
tmp := @GetDocField(docid; "Subject");
"notes://" + serv + "/" + dbn + @If(@IsNull(tmp) | @IsError(tmp); "/BLANKPAGE?OpenPage"; "/0/" + docid + "?OpenDocument")

万一、トップページ文書が削除された場合でもフレームセットがキチンと表示されるよう "BLANKPAGE" という名前のページを作成しています。 

0 件のコメント:

コメントを投稿