Probier mal ein
@If (!@IsDocBeingEdited; @Return (""); "")
nach dem EditDocument
Ich bin mir grade nicht sicher, aber ich meine, dass @Command([EditDocument]) auch @False liefert... Dann müsste es auch so funktionieren:
@If( @Command([EditDocument] ; 1 ) ; ""; @Return( "" ) )
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
If Not uidoc.EditMode Then
uidoc.EditMode = True
End If
If Not uidoc.EditMode Then
Exit Sub
End If
'Hier die Aktionen nach dem Umschalten einbauen
Oder man fragt dann gleich die LockHolder Property ab.Klar, aber es kann auch andere Gründe geben, weshalb man ein Dokument nicht bearbeiten kann, z.B. fehlende Rechte oder eigene interne Steuerungen.
Hallo Chris, it's Chrismas-time ;D
bei einem hinterlegten Agent '(Test)' (manuell aus der Liste der Agents, Ziel = Keines) mit
@If(@IsDocBeingEdited; @Prompt([Ok]; "OK"; "OK"); @Return(""));
@Prompt([Ok]; "2. OK"; "2. OK");
SELECT @All
zeigt mir meine Schaltfläche mit
@Command([EditDocument]; "1");
@Command([ToolsRunMacro]; "(Test)")
beide Prompts an, wenn ich im Autorenfeld hinterlegt bin und keines der beiden Prompts, wenn ich nur im Leserfeld hinterlegt bin. Wenn das Dokument durch einen anderen Nutzer gesperrt ist, zeigt es die Hinweismeldung "Das Dokument wurde bereits gesperrt von ..." an und bricht dann richtig die Bearbeitung ab, ohne die beiden Prompts anzuzeigen. Sollte so also funktionieren.
Ohne die Nutzung eines Agents hat das so nicht funktioniert, da dann immer zuerst @IsDocBeingEdited ausgewertet wurde (= Nein) und danach erst @Command([EditDocument]; "1") durchgeführt wurde. Da auch @PostedCommand anstelle von @Command bei mir keine Wirkung zeigte, hilft bei Dir ja vielleicht auch die Verwendung eines Agents?!
Liebe Grüße
René