Web ユーザーは、Domino データベースで作業するときに Notes メニューの選択肢にアクセスできません。したがって、Notes のメニューに相当するメニューを作成する必要があります。
@コマンド式を使用するアクションを作成し、アクションバーのボタンとして使用できるようにします。ここで注意が必要なのは、Domino では、ビューの中で選択された文書に基づくコマンドを解釈できないということです。これは、Web には「選択」された文書に関する表記法がないためです。[返答文書の作成] などのアクションについては、フォームアクションを [メイントピック] フォームに追加して、[返答] 文書を開く必要があります。
データベースのすべてのボタンや特定の @コマンドを Web で使用できるようにするには、[Web アクセス] の [ページ生成時に JavaScript を使用] データベースプロパティを選択します。このプロパティが設定されていないと、Domino では文書中の最初のボタンだけしか認識されません。デフォルトでは、このボタンは文書を閉じて保存するための [送信] ボタンとして扱われます。
Domino では、ボタン、アクション、ホットスポットがすべて表示されることに注意してください。このような要素に Web アプリケーションでは使用できない @コマンドや @関数が含まれていても、同様です。
次の手順を完了すると、現在のデータベースで新規の [メイントピック] を開くボタンが作成されます。
一般的に使用されているその他のメニュー項目の例を、次に示します。
@Command([Compose]; "formname")
@Command([Compose];"":"database"; "formname")
@Command([OpenView]; "viewname")
@Command([OpenView];"":"database"; "viewname")
@Command([OpenView];"By Date")
@Command([Clear])
@Command([CloseWindow])
ここでは、提案された演奏会スケジュールをレビュー会議に配信する処理を例にとってみます。
[要求] フォームを改良して、メールで送信された要求の承認または否認を、管理者が簡単に行えるようにします。[要求を承認] アクションと [要求を否認] アクションの 2 つのフォームアクションを作成します。
[要求を承認] アクションには、次の式を使用します。文書のステータスを [承認] に変更してから、文書を次の承認者に配信します。
FIELD Status:="Approved";
@MailSend(NextApprover;"";"";"For your review";"Click Approve Request to approve this requisition or click Deny Request to return the request to " + Initiator;"Initiator":"Body";[sign]);
[要求を否認] アクションには、次の式を使用します。文書の状態を [否認] に変更して、発信者に通知を配信します。
FIELD Status:="Denied";
@MailSend(Initiator;"";"";"Re: Your request";"Your request was unable to be approved. Contact " + PreviousApprover + "for more information.");
次の例では、データ入力フォームでの補足説明テキストの表示を要求するチェックボックスをユーザーが選択できるようにします。チェックボックスアクションは、通常のアクションを使用する場所であればどこでも使用できます。チェックボックスアクションを作成するには、2 種類のコードが必要です。1 つは、チェックボックスアクションの [値] プロパティの式です。この式で、Notes がチェックマークを表示する条件を指定します。もう 1 つは、チェックボックス値を切り替え、アクションに実行させたい操作を行う「Click」式またはスクリプトです。チェックボックスの状態を保存するための場所 (プロファイル文書のフィールドや環境変数など) を保持している必要があります。
非表示式など、チェックボックスの値の式は、True または False の値を返します。True の場合はチェックマークが表示されます。次の例では、「Options」という複数値のフィールドの個人プロファイルに値「Verbose」が含まれているときは、値の式の結果としてチェックマークが表示されます。
@GetProfileField("UserProfile"; "Options"; @UserName) = "Verbose"
Click イベントのコード例では、値「Verbose」がプロファイル文書フィールドにない場合は「Verbose」を挿入し、すでにある場合は「Verbose」を削除します。
_opts := @GetProfileField("UserProfile"; "Options"; @UserName);
@If(_opts = "Verbose";
@SetProfileField("UserProfile"; "Options"; @Trim(@Replace(_opts; "Verbose"; "")); @UserName);
@SetProfileField("UserProfile"; "Options"; @Trim(_opts : "Verbose"); @UserName)
);
REM {Redisplay the current form in the new mode.};
@If(@IsDocBeingEdited; @Command([ViewRefreshFields]); "")
REM 文よりも前のコードで、切り替える値を変更します。この例では、Verbose オプションによって、データを入力する際に役立つ情報が補足スタティックテキストとしてアプリケーションのフォームに表示されます。テキストを表示するかどうかの判断は、フォームの非表示式でプロファイル文書フィールドをテストします。ユーザーが文書を編集すると、このアクションは、以前に非表示にしたヘルプテキストを表示 (またはその逆に) するように画面を更新します。非表示式の例を次に示します。
!(@GetProfileField("UserProfile"; "Options"; @UserName) = "Verbose")
SetDocField または @DbLookup を使用して Notes 文書に保存されたフィールドを使用したりすることもあります。