Autor Thema: Dokument zur Bearbeitung sperren  (Gelesen 3309 mal)

Offline Neuling_2k7

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Dokument zur Bearbeitung sperren
« am: 04.12.07 - 22:03:18 »
Hallo @Notes Gemeinde,

ich habe mal wieder eine Anforderung, die ich alleine nicht hin bekomme:

Dokumente in meiner DB sollen nicht über doppelklick zur Bearbeitung geöffnet werden können. Um Dokumente zu bearbeiten habe ich einen Aktions-Button in meiner Ansicht eingebaut.

So weit bin ich schon mal alleine gekommen:

In den Declarations der DB habe ich eine Variable <allow_edit> als boolean deklariert.

Im PostOpen der Maske wird diese Variable auf <false> gesetzt.

Im QueryModeChange der Maske wird dann folgender code abgefragt:
Code
If allow_edit = False Then
  continue=False
  Exit Sub
End If

in meinem Aktion-Button habe ich folgenden Code hinterlegt:
Code
	Dim uidoc As NotesuiDocument 
	Dim db As NotesDatabase 
	Dim ws As New NotesUIWorkspace 
	
	Set uidoc=ws.CurrentDocument 
	allow_edit=True
	uidoc.editmode=True 

Der erste Teil der Anforderung funktioniert: das Dokument kann über einen Doppelklick nicht bearbeitet werden.
Aber:
Wenn ich den Button verwende funktioniert es auch nicht. Im Debugger habe ich festgestellt das <allow_edit> beim klick auf den Button keinen Wert hat - also quasi initial ist.

Ist das ein normales vorgehen in Notes, oder mach ich was falsch??
gruß
Torsten

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Dokument zur Bearbeitung sperren
« Antwort #1 am: 04.12.07 - 22:15:14 »
Hm... Wie hast du denn allow_edit definiert? Ist das eine globale Variable in der Maske? Dann hast du aber in dem Button (Wo befindet sich der?) keinen Zugriff darauf, wenn ich mich jetzt gerade nicht vollkommen irre.

Offline Neuling_2k7

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Dokument zur Bearbeitung sperren
« Antwort #2 am: 04.12.07 - 22:17:42 »
Hi,

hab das als Variable im DB-Script_Declarations folgendermaßen definiert:

dim allow_edit as boolean


Der Button direkt auf der Maske definiert....
gruß
Torsten

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Dokument zur Bearbeitung sperren
« Antwort #3 am: 04.12.07 - 22:18:42 »
Dann muss ich meine Aussage revidieren. Habe es gerade ausprobiert. Hatte einen Verdacht, dass die Variable in dem Kontext nicht sichtbar ist... Aber der hat sich nicht bewahrheitet.

Offline Neuling_2k7

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Dokument zur Bearbeitung sperren
« Antwort #4 am: 04.12.07 - 22:21:39 »
das ist ja das was mich wundert...

Wenn ich mir die gesamte Aktion im Debugger anschaue ist die Variable immer da und wird auch beim Doppelklick gefüllt und ich kann den wert dann im Querymodechange abfragen und entsprechend reagieren.
Wenn ich den Button klicke ist die Variable aber leer...
gruß
Torsten

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Dokument zur Bearbeitung sperren
« Antwort #5 am: 04.12.07 - 22:24:57 »
Was mich gerade viel mehr wundert: Ich habe deinen Quellcode so 1:1 übernommen in eine nackte Maske und es funktioniert, so wie gewünscht.
Also folgendes habe ich gemacht:
- Variable in Declarations deklariert
- im PostOpen mit false vorbelegt
- deinen Code aus Button und QueryModeChange übernommen

Und genauso tut es bei mir. Da muss das Problem womöglich woanders liegen.
« Letzte Änderung: 04.12.07 - 22:28:22 von MadMetzger »

Offline Neuling_2k7

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Dokument zur Bearbeitung sperren
« Antwort #6 am: 04.12.07 - 22:27:31 »
Was mich gerade viel mehr wundert: Ich habe deinen Quellcode so 1:1 übernommen in eine nackte Maske und es funktioniert, so wie gewünscht.

hab jetzt auch nochmal geschaut - ich hab immernoch das selbe ergebnis - die Variable bleibt [initial]....
gruß
Torsten

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Dokument zur Bearbeitung sperren
« Antwort #7 am: 04.12.07 - 22:36:36 »
Achso: Und was du damit natürlich nicht verhinderst ist, dass man ein Dokument dann noch direkt über Strg+B bearbeiten kann. Denn in dem Fall wird das Event QueryModeChange überhaupt nicht getriggert. Aber zu deinem Problem habe ich gerade nicht so direkt die Idee...

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Dokument zur Bearbeitung sperren
« Antwort #8 am: 04.12.07 - 22:37:46 »
Moment, mir kommt gerade eine Idee: Kann es sein, dass dein Doppelklick zum Öffnen des Dokuments erfolgt? Dann siehe meine vorherige Antwort...

Offline Neuling_2k7

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Dokument zur Bearbeitung sperren
« Antwort #9 am: 04.12.07 - 22:48:13 »
Moment, mir kommt gerade eine Idee: Kann es sein, dass dein Doppelklick zum Öffnen des Dokuments erfolgt? Dann siehe meine vorherige Antwort...

Das hab ich jetzt nicht so ganz verstanden...  ???

Ich mache einen Doppelklick zum öffnen des Doks, und dann klicke ich den Button auf der Maske...
gruß
Torsten

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dokument zur Bearbeitung sperren
« Antwort #10 am: 04.12.07 - 23:46:03 »
Das ganze Vorgehen ist vollkommen falsch. Und das wird auch nicht besser, selbst wenn man da noch herumdoktort.  Wenn man die Zugriffsrechte der Dokumente in der DB VOLLKOMMEN im Griff hat (was ich zu bezweifeln wage), dann könnte das helfen:
   
[LotusScript]: EditMode für bestimmte Dokumente verwehren


Aber wie gesagt: Da müsste der ganze Rest stimmen. Und da fehlt Dir wohl noch einiges. Lass Dich also bitte nicht täuschen, wenn Du Code aus dem BP-Artikel umsetzt! Du könntest da ggf. einem üblem Trugschluss aufsetzen. Lies daher bitte sorgfältigst die Einleitung meines Artikels!

Bernhard

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Dokument zur Bearbeitung sperren
« Antwort #11 am: 05.12.07 - 08:33:46 »
... hast du Option Explicit in der Aktion und in den Globals der Maske gesetzt?

Toni
Grüßle Toni :)

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Dokument zur Bearbeitung sperren
« Antwort #12 am: 05.12.07 - 09:42:30 »
Hi,

(oder Option Declare..)

aber mir stellt sich die Frage, (wie auch Bernhard), warum Du hier den "In Bearbeitung öffnen" verweigern willst?
- normalerweiese darf das kein Problem sein - die, die nicht dürfen (->Autoren/nicht Autoren) erhalten sowieso nie den Bearbeitungsmodus.

Ich verwehre das "im Bearbeiten öffnen" persönlich per Scirpt allerhöchsten im
Code
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
	if Mode = 1 and not IsNewDoc then continue = false
End Sub 
mehr auch: -> Desingerhelp "NotesUIDocument"...

Für alles Anderes muss man viel zuviele Dinge beachten -
und eine Sicherheit stellt dies sowieso nicht da !

Wenn Du dich davon nicht abbringen lässt,
geb uns mehr infos, was Du eigentlich überhaupt vorhast.
Eventuell können wir Dir dann besser helfen.

Gruss, Pete(r)

pete(r)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Dokument zur Bearbeitung sperren
« Antwort #13 am: 05.12.07 - 11:29:07 »
... ich vermute mal, daß in der Aktion eine Validierung stattfindet, ob ein möglicher Autor das Dokument in diesem Fall trotzdem bearbeiten darf. Ich kenn solche Fälle, bei denen es darauf ankommt, daß das Dokument aus einer bestimmten Ansicht geöffnet werden muß und in einem bestimmten Status (etc) ist...

Da kenne ich entsprechende Konstrukte, daß Autoren nicht jederzeit bearbeiten dürfen - je nachdem wie kompliziert die Prozessabläufe sind...

Toni
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz