式言語


式ステートメントの評価の順序
Lotus Domino は、上から下、左から右の順序で式を評価します。1 つのステートメントの評価が終わらなければ、先には進みません。ただし、@PostedCommand といくつかの @Command 関数は、他の @関数の実行がすべて完了した後で実行されます。式言語には、制御ロジック用のいくつかの @関数があります。

@コマンドを除き、式言語は Notes オブジェクトのバックエンドオブジェクトを操作します。たとえば、式内にフィールドを記述すると、保存されているフィールドの値が参照されます。FIELD 予約語を使うと保存されたフィールドの値を変更できます。@コマンドはユーザーインターフェースで機能します。ユーザーインターフェースで行った変更は、文書を保存するまでバックエンドには反映されません。同じ文書に対して、バックエンドでのアクセスとユーザーインターフェースでのアクセスを混同した場合、正しい結果を得ることはできません。

@コマンドを評価する@PostedCommand 関数は、式内の他の @関数がすべて実行された後で実行されます。たとえば、次のような式があるとします。
@PostedCommand([CommandName]; Argument);
@If(Condition; TrueStatement; FalseStatement);
FIELD X := "Text"

最初のステートメントは最後に実行されます。

@コマンド関数は、一部の例外を除き、式内での順序で実行されます。例外的に、@PostedCommand のように式の最後に実行されるものもあります。各例外には、すぐに実行される同等の @コマンドがあります。

次の表は、最後に実行される @コマンドとすぐに実行される @コマンドの対応を示すリストです。

メモ すぐに評価される関数は Release 6 で新しく追加されました。
@関数の後に評価すぐに評価
EditClearClear
EditProfileEditProfileDocument
FileCloseWindowCloseWindow
FileDatabaseDeleteDatabaseDelete
FileExitExitNotes
FolderFolderDocuments
NavigateNextNavNext
NavigateNextMainNavNextMain
NavigateNextSelectedNavNextSelected
NavigateNextUnreadNavNextUnread
NavigatePrevNavPrev
NavigatePrevMainNavPrevMain
NavigatePrevSelectedNavPrevSelected
NavigatePrevUnreadNavPrevUnread
ReloadWindowRefreshWindow
ToolsRunBackgroundMacrosRunScheduledAgents
ToolsRunMacroRunAgent
ViewChangeSwitchView
ViewSwitchFormSwitchForm

@If 関数@If では、論理値が True か False かによって異なるステートメントが実行されます。
@If(LogicalValue; TrueStatement; FalseStatement)

@Do 関数@Do では、複数のステートメントが連続して実行されます。@If 関数内での実行パスとして使えます。
@If(LogicalValue; @Do(TrueStatement1; TrueStatement2); FalseStatement)

@Do 関数内の @Command 関数は、他のすべての @関数 (@Do の内側、外側にかかわらず) が実行された後で実行されます。

@Return 関数@Return 関数は式の実行を停止します。
@If(LogicalValue; @Return(""); "")