Domino 9 und frühere Versionen > Entwicklung

Feld schützen, wenn bestimmte Rolle nicht vorhanden ist....

<< < (2/3) > >>

klaussal:
noch eine Lösung:

--- Code: ---Function userHasRole (Rolle As String) As Variant
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim aclEntry As NotesACLEntry

Dim eval  As Variant
Dim varReturn As Variant
Dim varCompare As String
Dim Rolle2 As String
Dim subString As String

On Error Goto userHasRoleError
Set db = session.currentDatabase

Rolle2 = "[" + Rolle + "]"

eval = Evaluate("@UserNamesList")
varReturn = Arraygetindex( eval, Rolle2)

If Isnull(varReturn)   Then
'Messagebox "nix Gefunden"
userHasRole = False
Else
'Messagebox "gefunden"
userHasRole = True
End If
On Error Goto 0
Exit Function

userHasRoleError:
userHasRole = False
Msgbox "Fehler in userHasRole: " & Cstr(Err) & ": " & Error$
Exit Function

End Function

--- Ende Code ---

klaus

OCS:
danke klaus,
die funktioniert geht super! ähm nur noch eine frage.... die funktion sollte mir doch eigentlich true oder false zurückgeben, oder???

ich füge sie nochmal hier ein.....


Function userHasRole (Rolle As String) As Variant
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Dim aclEntry As NotesACLEntry
   
   Dim eval  As Variant
   Dim varReturn As Variant
   Dim varCompare As String
   Dim Rolle2 As String
   Dim subString As String
   
   On Error Goto userHasRoleError
   Set db = session.currentDatabase
   
   Rolle2 = "[Manager]"
   
   eval = Evaluate("@UserNamesList")
   varReturn = Arraygetindex( eval, Rolle2)
   
   If Isnull(varReturn)   Then
      Messagebox "nix Gefunden"
      userHasRole = False
   Else
      Messagebox "gefunden"
      userHasRole = True
   End If
   On Error Goto 0
   Exit Function
   
userHasRoleError:
   userHasRole = False
   Msgbox "Fehler in userHasRole: " & Cstr(Err) & ": " & Error$
   Exit Function
   
End Function



----------------------------------------------------------------------------------------

ich ruf die dann so auf:

Sub Entering(Source As Field)
   userHasRole (Rolle)
   
End Sub

-----------------------------------------------------------------------------------------

Rolle  sollte doch jetzt irgend nen wert haben, mit dem ich weiter arbeiten kann, oder?? sorry, bin ein nub...



Danke Björn


koehlerbv:
Die Funktion liefert auch einen boolschen Wert zurück, Du musst sie nur richtig einsetzen:

- Schmeiss die Rolle2 aus der Function
- Ruf sie wie folgt auf:
   If userHasRole ("[Manager]") = True then
       ... Deine Reaktion ...
    Else
       ... Deine andere Reaktion
    End If

HTH,
Bernhard

Raymond:
Im Gegensatz zu einer Sub hat eine Function ein Rückgabewert, den kannst du einer Variablen vom entsprechenden Typ zuweisen. in deinem Fall also


varX = userHasRole(Role)


in varX steht nun der Rückgabewert von der Funktion userHasRole.

Gruss - Raymond

koehlerbv:
Björn, aber nochmal meine Frage: Warum treibst Du soviel Aufwand anstatt mit zwei Feldern zu arbeiten (vor allem, da Du noch nicht fit in LotusScript bist) ? Das ist doch erheblich übersichtlicher und für den User vor allem ergonomischer, wie ich oben schon geschrieben habe.
Aber es mag ja einen Grund geben, der bei Dir dagegen steht.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln