Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Wiesel am 29.03.06 - 09:16:34
-
Hallo!
Ich habe eine Ansicht in der so alle Dokumente angezeigt werden.
Diese Ansicht soll für den User aber nur eine Übersicht darstellen.
Der User soll, wenn möglich, nur die Dokumente öffnen können, in denen er auch als verantwortlicher Mitarbeiter erfasst ist.
Bei allen anderen Dokumenten, soll, wenn der User versucht diese zu öffnen, eine Meldung erscheinen, daß er es nicht darf.
Ich habe dazu im Queryopendocument der Ansicht folgende Formel eingebracht:
Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
Dim session As New NotesSession
Dim uidoc As NotesUIDocument
Dim user As String
user = session.UserName
If uidoc.FieldGetText("namVerantwMA") <> user Then
Msgbox "Sie dürfen das Dokument nicht bearbeiten"
Continue = False
End If
End Sub
Das mit dem UIDocument war von mir nur ein Versuch. Aber wie Ihr Euch wahrscheinlich denken könnt, hat das nicht geklappt. Und ich weiß nun auch nicht weiter.
Freue mich über Hilfe.
Gruß, Wiesel
-
Hi,
So auf den ersten Eindruck scheint dies wieder ein typischer Fall fuer die schon so oft angesprochenen Leser- und Autorenfelder zu sein.
Andreas
-
Du musst die Prüfung innerhalb der Maske machen und nicht in der Ansicht.
Hier gibt's Infos wie man so was machen kann: EditMode für bestimmte Dokumente verwehren (http://atnotes.de/index.php?topic=20455.0)
Die sicherste Alternative sind auf jeden Fall Autorenfelder.
Axel
-
Ich arbeite mit Autorenfeldern. Also, das Bearbeiten von "unbefugten Mitarbeitern" ist bereits unterbunden.
Es gibt auch Ansichten, in denen jeder nur seine ihm zugeteilten Dokumente sieht.
Aber es soll eben eine Übersicht geben, in der Kerndaten aus den Dokumenten zur Information angezeigt werden. Aber der User soll nur die Informationen, die eben in der Ansicht gezeigt werden, sehen können. Er soll aber nicht in das Dokument reinkönnen, um noch weitere Daten zu sehen.
Kann ich dieses "in das Dokument reingehen" für "Unbefugte" verhindern?
-
Die Prüfung muss in diesem Fall im QueryOpen-Event der Maske gemacht werden.
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim session As New NotesSession
Dim user As String
user = session.UserName
If Source.FieldGetText("namVerantwMA") <> user Then
Msgbox "Nix da!!"
Continue = False
End If
End Sub
Axel
-
Vielen Dank für Deine Antwort.
Ich habe jetzt im Postopen den Script mit der Anweisung zum Schließen des Dokuments eingebracht:
Sub Postopen(Source As Notesuidocument)
Dim session As New NotesSession
Dim user As String
user = session.CommonUserName
Dim feld As String
feld = Source.FieldGetText("txtVerantwMA")
If feld <> user Then
Source.close
Else
Continue = True
End If
End Sub
Ist das Ganze im QueryOpen und nur mit "Continue = False" wird zwar die Bearbeitung unterdrückt, aber der User kommt trotzdem ins Dokument.
Das ist bei meinem Script jetzt nicht mehr der Fall.
Gruß, Wiesel