Autor Thema: EditMode verwehren mit 2 Bedingungen  (Gelesen 1952 mal)

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
EditMode verwehren mit 2 Bedingungen
« am: 17.08.06 - 14:48:05 »
Hallo,

habe mir mal das Thema "EditMode für bestimmte Dokumente verwehren" durchgelesen und finde die Hilfe und Erläuterung einfach Weltklasse.

Dennoch habe ich bei der Umsetzung ein Problem.

In meiner DB sollen "Alle" das Dok sehen und bearbeiten können, wenn das Feld "Status" auf "ok" ist.
Ist das Feld auf "meldung" soll es zwar noch jeder sehen, aber nur noch ein bestimmter Personenkreis bearbeiten können.
Eigentlich ganz einfach dachte ich mir, aber anscheinend doch nicht.

Hier mal meine Überlegungen:


Sub Postopen (Source As Notesuidocument)
   If (Source.EditMode = True) And (Status="OK") Then
   Source.EditMode = False
   End If
End Sub



Sub Querymodechange (Source As Notesuidocument, Continue As Variant)
   
   If (Bedingung v. Autorenfeld")
Then Messagebox "Sie sind berechtig, Änderungen durchzuführen!", MB_ICONEXCLAMATION, "Achtung"
      If Source.EditMode = False Then
         Continue = False
      End If     
   End If     
   
End Sub


Oder liege ich da komplett falsch?
Sorry aber LS  :-:    ;)

Gruß Jason

Driri

  • Gast
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #1 am: 17.08.06 - 15:43:53 »
Zitat
(Status="OK")

Damit würde der Inhalt der Variablen Status mit dem String "OK" verglichen. Du müßtest also zuerst einmal aus dem aktuellen UIDoc das Feld Status auslesen, so etwa

(Source.FieldGetText("Status") = "OK")


Und wie genau ist der Zugriff für Fall 2 geregelt ? Das müßtest Du schon etwas genauer beschreiben.

Offline VB3Bernd

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Männlich
  • Danke!
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #2 am: 17.08.06 - 15:44:56 »
Hi,

irgendwann wechselt ja der Wert des Feldes "Status" und das Dokument muss gespeichert werden. Ich würde versuchen im QuerySave das Feld "Status" abzufragen und dann die Leser- bzw. Autorenfelder setzen.

Das kannst Du sogar mit @Formula machen. Ungefähr so:

@if(
Status = "meldung";
@setfield("Leserfeld" ; "<Alle-User>") & @setfield("Autorfeld" ; "<Autor-User>") ;
@setfield ("Leserfeld" ; "<Alle-User>") & "@setfield("Autorfeld" ; "<Alle-User>")
)

Viele Grüße
Bernd
« Letzte Änderung: 17.08.06 - 15:49:26 von VB3Bernd »
SYSTEM
Domino 9.0.1 FP10 HF983
Client Win10 mit Notes 12.0.0
(Revision 20210514.0921)
Mail-Schablone 9.1.0 (20.03.18)
-----------------------------------
Man wird nicht zwischen Weihnachten und Neujahr dick, sondern zwischen Neujahr und Weihnachten! ;-)

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #3 am: 17.08.06 - 16:44:52 »
Hallo Danke VB3Bernd und Driri für die schnelle Hilfe.
@Bernd
Werde ich gleich mal testen ob es funzt

@Driri
Tja da (LS) liegt der Hund begraben .
Feld Status auslesen ist mir noch klar, bei der 2.Bedingung hakt es, darum konnte ich es noch nicht genauer formulieren. Bastle noch rum.
Aber es müsste dann auch so sein, dass ich zunächst mal das Feld "Berechtigter" auslese und dann in etwa gleicher Form vergleiche.
D.h. dann für mich (ACHTUNG !  Null Ahnung mit LS :-[)
LS-Profis bzw. Checker bitte wegschauen   ;)

Sub Postopen (Source As Notesuidocument)
Source.FieldGetText("Status")
   If (Source.EditMode = True) And (Status="OK") Then
   Source.EditMode = False
   End If
End Sub

Sub Querymodechange (Source As Notesuidocument, Continue As Variant)
   Source.FieldGetText("Berechtigter")
   If (Berechtigter="Test")
Then Messagebox "Sie sind nicht berechtig, Änderungen durchzuführen!", MB_ICONEXCLAMATION, "Achtung"
      If Source.EditMode = False Then
         Continue = False
      End If     
   End If     
   
End Sub



Gruß Jason

Driri

  • Gast
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #4 am: 17.08.06 - 17:21:47 »
Nene, Mißverständnis. So sollte das aussehen :

Zitat
Sub Postopen (Source As Notesuidocument)
   If (Source.EditMode = True) And (Source.FieldGetText("Status")="OK") Then
   Source.EditMode = False
   End If
End Sub

Sub Querymodechange (Source As Notesuidocument, Continue As Variant)
   If (Source.FieldGetText("Berechtigter")="Test")
Then Messagebox "Sie sind nicht berechtig, Änderungen durchzuführen!", MB_ICONEXCLAMATION, "Achtung"
      If Source.EditMode = False Then
         Continue = False
      End If     
   End If     
   
End Sub

Wobei Bernds Vorschlag IMO besser ist. Wobei Du keine Leserfelder brauchst, denn Lesen sollen ja alle können. Also müßtest Du dafür sorgen, daß im Autorenfeld dann entweder Alle stehen (z.B. über eine Rolle) oder eben nur die bestimmten Personen eingetragen werden.
« Letzte Änderung: 17.08.06 - 17:25:42 von Driri »

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #5 am: 18.08.06 - 07:34:56 »
Danke Euch 2en.

Aber wenn ich nach der Methode gehe, habe ich folgendes Problem:

"Der Zugriff von Benutzern mit mindestens Editorzugriff in der ACL wird nicht durch ein Autorenfeld beschränkt." (dies ist bei mir der Fall)

Gruß
Gruß Jason

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #6 am: 18.08.06 - 07:45:08 »
Hi.

Ist es denn dringend Notwendig, daß die Benutzer Editorrechte haben müssen?
Im Normalfall kommt man auch mit Autorenrechten aus.


André
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #7 am: 18.08.06 - 08:17:16 »
Hi. Habe es mit Autorenrecht schon probiert.
Aber da hakt mein LS.
"Sie sind zur Durchführung nicht berechtigt."

Vielleicht fällt Euch LS-Profis was auf.  :-:

->User mit Editorrecht
->LS im Querysave
Sub Querysave(Source As Notesuidocument, Continue As Variant)
If Messagebox ("Wollen Sie dieses Änderung nun speichern?.", 36, "Hinweis") = 7 Then Continue = False
End If
End Sub

Im Aktionsbutton
Sub Click (source As Button)
   Dim ws As New notesuiworkspace
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim newDoc As NotesDocument
   Dim uidoc As notesuidocument
   Dim rtitem As NotesRichTextItem
   Dim boxType As Long, answer As Integer   
   Set uidoc = ws.currentdocument
   Set db = s.CurrentDatabase
   Set doc = uidoc.Document
   '******* Hier wird dann das Dokument gespeichert, verlinkt und versendet
   
   Call uidoc.Save
   Set newDoc = New NotesDocument( db )
   Set rtitem = New NotesRichTextItem( newdoc, "Body" )
   Call rtitem.AppendDocLink( doc, "hier gelangen Sie zum Dokument" )
   newdoc.SendTo = "................."
   newdoc.Subject =  _
   "Es ist eine neue Änderungsmeldung eingegangen. Bitte überprüfen Sie diese Meldung."
   Call newdoc.Send( False )
   doc.saveoptions = "0"
   Call uidoc.close
   Exit Sub
End Sub



Gruß Jason

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #8 am: 18.08.06 - 08:39:48 »
Die Hilfe hilft  ;D

Such mal nach

Zugriffsebenen für Datenbanken

in der Benutzerhilfe.

Ich gehe davon aus, das keine Autorenfelder eingetragen sind, dann darfst Du das auch nicht.

André
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: EditMode verwehren mit 2 Bedingungen
« Antwort #9 am: 18.08.06 - 08:59:20 »
Hat sich erledigt. Der liebe Cache  ;D :love:
Gruß Jason

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz