Habe das gerade ausprobiert. Die Information, wer der Ersteller des Dokuments ist, steht im Dokument (bzw. bei einem neuen Dokument ist es der aktuelle User). Auf die Information aus dem Dokument (wer ist der Ersteller oder ist das Dokument neu) kann die Verbergeformel der Schaltfläche nicht zugreifen. Daher muss das Dokument diese Information vor dem Öffnen an einer Stelle ablegen, auf die die Verbergeformel zugreifen kann.
Mein Testdokument verwendet dazu die Notes.ini (sollte schnell gehen, kann vielleicht besser ein Profildokument oder noch etwas anderes sein).
Im Queryopen des Dokuments passiert folgendes:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim notesname As NotesName
Dim doc As NotesDocument
Set doc = Source.Document
If doc Is Nothing Then
'Neues Dokument -> Ersteller = User
Set notesname = New NotesName (session.Username)
Else
'Bestehendes Dokument -> Ersteller steht in Feld Ersteller
Set notesname = New NotesName (doc.Ersteller (0))
End If
'Ersteller in Notes.ini schreiben, Variablenname ist Dateiname der Datenbank
Call session.SetEnvironmentVar (db.Filepath, notesname.Abbreviated)
End Sub
Die Verbergeformel der Schaltfläche lautet:
@Environment (@Subset (@DBName; -1)) != @V3Username
Funktioniert!!
Einziger Nachteil könnte sein, dass die Information über den Ersteller nur an einer neutralen Stelle abgelegt werden kann - hier in Abhängigkeit des Dateinamens der Datenbank - und nicht in Abhängigkeit des Dokuments, denn dann könnte man ja direkt aus dem Dokument lesen. Sobald mehr als ein Dokument gleichzeitig geöffnet ist, gewinnt die Einstellung des letzten Dokuments. Allerdings verändert sich die Sichtbarkeit der Schaltfläche bei Änderung des Eintrages in der notes.ini nicht, so dass das vielleicht gar kein Problem ist. Das musst Du dann selber ausprobieren.