Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Wipe am 20.08.02 - 15:30:24

Titel: Fenster bei Doc in Bearbeitungsmodus setzen
Beitrag von: Wipe am 20.08.02 - 15:30:24
Hallo,

Im Zuge der Benutzerfreundlichkeit möchte ich folgendes einsetzen:

Gibt es eine Möglichkeit wenn ein User ein Doc in Bearbeitung setzen will aber jedoch nur Leserechte auf die DB hat ein PopUp Fenster zu öffnen der Ihm die Entsprechende Mitteilung gibt, daß er nur Leserechte hat.

Gruss
Bubble
Titel: Re: Fenster bei Doc in Bearbeitungsmodus setzen
Beitrag von: rar am 20.08.02 - 15:51:15
Hi Bubble!
Welche Rechte haben deine 'Leser' auf der Db?
Ich habe einen Fall, wo alle User ein Dok über  irgendwelche Aktionen Felder ändern müssen, das Dok aber nicht direkt bearbeuten dürfen.
Ich habe in diesem Fall allen 'Lesern' Autorenrechte gegeben, in der Maske ein Autorenfeld mit dem, Wert "*" angelegt und ins QueryModeChange folgenden Code geschrieben:

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
Dim uidoc As NotesUIDocument
Set uidoc = Source
continue = False
If uidoc.EditMode = False Then      
   If uidoc.Document.ParentDatabase.CurrentAccessLevel > 3 Then
   continue = True
   Exit Sub
End If            
If continue = False Then
   Msgbox"Sie dürfen dieses Dokument nicht bearbeiten!" ,16, "Lotus Notes"
End If
End Sub

Im Queryopen mußt du das auch abfragen.

Vielleicht kannst du was damit anfangen.
lg
-rar
Titel: Re: Fenster bei Doc in Bearbeitungsmodus setzen
Beitrag von: Rob Green am 20.08.02 - 15:59:37
hm..ich glaube, das würde sich mit internen Routinen beissen, denn Notes wird den User wegen dem Reader Access komplett den Zugang zum ChangeMode sperren.

Mach doch folgendes zB:
a.) einen Fake Bearbeitunsgbutton = mit Access Abfrage und Msgbox
b.) im DB Script beim Öffnen darauf hinweisen
c.) beim Öffnen der View
d.) ins Doc ein Berechnet zur Anzeige Feld
Titel: Re: Fenster bei Doc in Bearbeitungsmodus setzen
Beitrag von: Wipe am 20.08.02 - 16:37:31
Ähm - Lotus Script is nicht mein Reich (bis jetzt)  ;)

@rar

also diese Docs sind ganz einfach ohne irgendwelche Aktionen oder sonstwas

@Rob_Green

??? ??? ???

Nochmal ganz kurz:

- User steht in der Ansicht
- User macht Doppelklick oder Drückt Bearbeitungsbutton oder STRG + B

Doc wird geöffnet ist allerdings nicht im Bearbeitungsmodus - klar - User hat nur Lesesrechte bzw. Maske wird nicht zum Bearbeitungsmodus autom. geöffnet.

Jetzt will er aber das Doc über Doppelklick usw. bearbeiten - jetzt soll Meldung kommen - Ne Junge Du nich, hast nich genügend Rechte und Tschüß

Ich denke irgendwo im QueryOpen müßte das hinterlegt sein.  ??? So auf die Art bei check ob Doppelklick ok - check ACL = Leser - Ja - Message.  ::)

Gruss
Bubble

PS: Danke schon mal
Titel: Re: Fenster bei Doc in Bearbeitungsmodus setzen
Beitrag von: rar am 20.08.02 - 16:52:20
Wäre es für dich ein Problem, wenn deine Leser zwar Autorenrechte haben, aber trotzdem nur lesen können?
Titel: Re: Fenster bei Doc in Bearbeitungsmodus setzen
Beitrag von: Rob Green am 20.08.02 - 17:07:09
hm..sorry, machen wir es ausführlicher:

1. Möglichkeit:
diese Formel in die Maske des Docs, in ein Berechnet zur Anzeige Feld:
@if(@UserAccess( @DbName )="2";"!!! Achtung, Sie können das Dokument nicht bearbeiten !!!";void)

Damit sieht ein Leser immer obigen Hinweis, sobald er ein Dokument aufmacht (je nachdem natürlich, wo das Feld steht).

2. Möglichkeit:
User klicken immer gerne auf Buttons, statt kurze Wege zu gehen. Also nutze das und blende Ihnen, wenn obige Formel in einem Aktionsbutton im geöffneten Doc steht und der DAU drauf klickt, eine Messagebox ein:
@if(@UserAccess( @DbName )="2";@prompt([ok];"ACHTUNG";"Sie können das Dokument nicht bearbeiten !!!");void)

3. Möglichkeit: QueryModeChange
Hinweis: wenn ein User im geöffneten Doc doppelt auf das Doc klickt, wird u.a. der Event QueryModeChange ausgelöst. Ich behaupte mal, das QueryModeChange bei einem Leser überhaupt nicht ausgelöst wird. Täusche mich gerne. Probier daher mal folgendes aus der Notes Help aus:
 1.      This script prevents the user from switching to Edit mode and displays a message informing the user that the document cannot be edited.
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
 If Not ( source.EditMode ) Then
   Messagebox("Sorry, the text you wrote can't be edited.")
   continue = False
 End If
End Sub
 2.      This script checks if the user is switching from Read mode to Edit mode. If so, and if the Status field contains "Closed," the script displays a message and prevents the user from switching to Edit mode.

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
 If Not ( source.EditMode ) Then
   currentStatus = source.FieldGetText( "Status" )
   If ( currentStatus = "Closed" ) Then
     Messagebox _
     ( "Document available for browsing only." )
     continue = False
   End If
 End If
End Sub
Titel: Re: Fenster bei Doc in Bearbeitungsmodus setzen
Beitrag von: eknori am 20.08.02 - 17:28:08
Sehr schöne und ausführliche Ausführung: 3 Respekt Punkte

eknori
Titel: Re: Fenster bei Doc in Bearbeitungsmodus setzen
Beitrag von: Wipe am 21.08.02 - 08:02:13
@rar und @Rob_Green

vielen dank für Eure Hilfe. Werde es die Tage entsprechend mal testen.

Gruss
Bubble