Das Notes Forum
Domino 9 und frühere Versionen => ND6: Administration & Userprobleme => Thema gestartet von: Alexis am 19.07.04 - 11:50:01
-
Hallo Forum,
wie verhindere ich, dass User per Doppelklick innerhalb eines Dokuments in den Editmode gelangen?
Alexis
-
Liegt hier die Betonung auf "Doppelklick" und "innerhalb des Dokuments" oder auf "EditMode verhindern" ? Um ein Dokument in den EditMode zu bringen, gibt es ja nun auch noch etliche andere Verfahren ...
Bernhard
-
Hallo Bernhard,
die Betonung liegt tatsächlich auf Editieren verhindern, da das Editieren durch Rollen geregelt wird.
alexis
-
... nimm das "querymodechange"-event. wenn der user die rolle nicht hat, Continue = False.
-
wichtige ERGÄNZUNG
querymodechange ist in diesem Zusammenhang IMMER nur die halbe Wahrheit !!!
über Strg + B kann man aus einer Ansicht das Dokument DIREKT editieren, und dann wird das querymodechange-event NICHT aufgerufen.
Man muss IMMER auch das QueryOpen- Event mit abfangen... (also dort über source.Editmode abfragen, ob das Dokument direkt im bearbeiten- Modus geöffnet werden soll, und wenn ja, dann die gleichen abbruch-mechanismen wie in querymodechange einbauen...
Gruß
Tode
-
Hallo Forum,
irgendwie stehe ich auf dem Schlauch:
Im QueryOpen erhalte ich auf source.editMode = False die Fehlermeldung "Method not available ...."
Im QueryModeChange funktioniert der Doppelklick immer noch trotz der Zeile source.editMode = False
Wer hilft mir auf die Sprünge?
Alexis
-
QueryOpen ist das falsche Event - PostOpen musst Du nehmen:
If Source.EditMode = True and (DEINEBEDINGUNG) then
Source.EditMode = False
End If
Damit wird automatisch QueryModeChange angesprungen !
QueryModeChange:
Dort setzt Du nicht den EditMode (das wäre ja wieder ein QueryModeChange !), sondern - wenn Deine Bedingung greift -
If Source.EditMode = False then
Continue = False
End If
HTH,
Bernhard
-
ähhmm.... So "einfach" geht es dann doch nicht...
Du darfst in den beiden Events nicht den Editmode SETZEN, sondern Du musst das ganze über die Continue- Variable abbrechen.
Der korrekte Code sieht dann so aus:
VORSICHT: Im QueryModechange und im QueryOpen muss man unterschiedliche Stati abfragen:
Das QuerymodeChange wird abgefragt, BEVOR der Modus geändert wird: Also ist zu dem Zeitpunkt, zu dem wir abbrechen wollen, Source.EditMode FALSE (es soll ja in diesem Moment auf TRUE geändert werden, das DOkument ist zu diesem Zeitpunkt noch im Lesemodus)
Anders im QueryOpen: Hier ist schon festgelegt, ob das Dokument nun im Edit- Oder im Lese- Mode geöffnet werden soll. Hier ist der "abzubrechende" Status: Source.EditMode = True
Also sieht das so aus:
QueryModeChange:
If Source.EditMode = False then
messagebox "Des darfsch Du aber net"
Continue = False
exit sub
end if
QueryOpen
If Source.EditMode = True then
messagebox "Des darfsch Du aber net"
Continue = False
exit sub
end if
Ach so: Das wurde auch noch nicht erwähnt: in den Events herumzupfuschen ist KEINE Sicherheit: jeder User kann sich einen Agenten zusammenklicken: Einfach Aktion, Feldwert ändern, und so in einem Dokument, das nur durch die Events geschützt ist, trotzdem Felder ändern...
Echte Sicherheit gibt es nur mit Autor- Rechten und Autor- Feldern... Da muss ich mich dann auch nicht im die Events kümmern, da verhindert notes ganz automatisch das bearbeiten.
HTH
Tode
-
Hallo Berhard,
datt iset.
Danke für Deinen Anschub
Alexis