例: アクション

  1. 次の LotusScript のアクションは、このスクリプトを実行しているコンピュータの Domino データディレクトリにある Domino データベースの名前を出力します。Null はデフォルトで現在使用しているコンピュータを示し、NotesDbDirectory の FirstDatabase メソッドと NextDatabase メソッドによって、指定したサーバーのすべてのデータベースを処理できます。
    Sub Click(Source As Button)
         Dim directory As New NotesDbDirectory("")
         Dim db As NotesDatabase
         Set db = directory.GetFirstDatabase(DATABASE)
         While Not(db Is Nothing)
              Messagebox db.Title
              Set db = directory.GetNextDatabase()
         Wend
         Messagebox "The End"
    End Sub
  2. 次の式は、CORP1 サーバー上のアドレス帳にある名前をリストし、ユーザーが名前を選択できるようにします。次に、選択された名前をつなげて 1 つの文字列を作ります。名前と名前の間にはカンマと空白を入れます。そして、この文字列を現在のフィールドに挿入します。次のアクションは、ユーザーがメールデータベースの [SendTo] フィールドを使用している場合に最適です。
    last := @Left(@DbColumn(""; "CORP1" : "NAMES.NSF"; "People"; 1); ",");
    first := @RightBack(@DbColumn(""; "CORP1" : "NAMES.NSF"; "People"; 2); " ");
    list := first + " " + last;
    name := @Prompt([OKCANCELLISTMULT]; "Send To"; "Who are you sending this memo to?"; ""; list);
    @Command([EditInsertText]; @Implode(name; ", "))
  3. 次の式は、[式が正しければアクションを非表示にする] が設定されている式です。このアクションは、[OrderTotal] フィールドが 100 以下の場合にのみ、フォームメニューかアクションバーで使用できます。現在の文書の Order_Total に値を入力した場合は、新しい値を有効にするために文書を更新しなければなりません。
    OrderTotal > 100
  4. 次の一連のスクリプトは、ユーザーが既存の文書を編集モードにするときに、強制的にアクションを使用するようにします。このアクションスクリプトは現在の文書を編集モードにします。Postopen と Querychangemode のイベントスクリプトは、[アクション] - [編集モード] や [Ctrl] + [E] キーなど、他の方法で編集モードに変更できないようにします。
    '(Globals) object, (Declarations) event
    Dim allowEdit As Integer
    '(Form) object, Postopen event
    Sub Postopen(Source As Notesuidocument)
         'Let document pass if new or not in EditMode
         'Otherwise if existing document is in EditMode
         ' Set allowEdit so Querymodechange doesn't reprocess
         ' Turn EditMode off so document opens in Read mode
         ' Tell the user to use the action
         If source.EditMode And Not source.IsNewDoc Then
              allowEdit = True
              source.EditMode = False
              Messagebox _
              "Use Edit mode action to edit document"
         Else
              allowEdit = False
         End If
    End Sub
    '(Form) object, Querymodechange event
    Sub Querymodechange(Source As Notesuidocument, Continue As Integer)
         'Allow user to proceed, and turn off allowEdit if
         ' user clicked the action (allowEdit on)
         ' already processed by Postopen (allowEdit on)
         ' trying to get out of Edit mode
         '  (allowEdit off but EditMode on)
         'Tell user to click action if changing existing document
         ' to Edit mode and not already processed by Postopen
         '  (allowEdit and EditMode off)
         If allowEdit Or (source.EditMode And Not allowEdit) Then
              allowEdit = False
         Else
              Messagebox  _
              "Use Edit mode action to edit document"
              continue = False
         End If
    End Sub
    '(Action) object, Click event
    Sub Click(Source As Button)
         Dim workspace As New NotesUIWorkspace
         Dim uidoc As NotesUIDocument
         Set uidoc = workspace.CurrentDocument
         'Turn on allowEdit so Querymodechange will let it pass
         'Turn on EditMode
         allowEdit = True
         uidoc.EditMode = True
    End Sub