Hallo zusammen, bisher hab ich über die Suche alle nötigen Informationen gefunden, jetzt komm ich jedoch nicht weiter.
Ich möchte die Möglichkeit zum anpassen der Ansichten für den Benutzer einfacher darstellen und gleichzeitig eine Suche ausführen, bekomme jedoch die Meldung sie haben zur Durchführung keine Berechtigung wenn es ein Benutzer versucht, der halt nur Author Rechte hat.
Hier Schritt für Schritt was ich tue:
1. eine Private ansicht erstellen und Agenten ausführen:
@SetTargetFrame("display");
@Command( [OpenView] ; "privatNAV");
@Command([RunAgent];"SetNAVAnsicht")
2. der Agent ruft entweder die Seite zum Einstellen der Ansicht auf oder wenn die schon mal ausgewählt wurde, soll er die Einschränkungen aufbauen:
Sub CreateUserViewNAV
On Error Goto errmsg
Dim s As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim defaultView As NotesView
Dim UserView As NotesView
Dim pdoc,vdoc As NotesDocument
Dim tdoc,doc,viewdoc As Notesdocument
Dim dc As NotesdocumentCollection
Dim myItem As NotesItem
Dim formula, Server, DBName As String
Dim uidb As NotesUIDatabase
Dim db As Notesdatabase
Dim UserName As NotesName
Set uidb = workspace.CurrentDatabase
Set db = s.currentDataBase
Set pdoc=db.GetProfileDocument("(Sel_NAV)",s.Username)
Set UserName=New NotesName(s.UserName)
If (pdoc Is Nothing) Or (pdoc.HasItem("Firma") = False) Then
Call workspace.editProfile("(Sel_NAV)",s.UserName)
Exit Sub
End If
'Alle Dok's suchen, die vom Typ Nachtrag
'und in denen das Feld Firma die gewünschten Firmen
formula = |@Contains(Form;"Nachtrag") & DeletedOn = "" |
Set myItem = pdoc.GetFirstItem("Firma")
If myItem.Text <> "" Then
formula = formula + |& @IsMember(Firma;"| + StrReplace(myItem.Text,";","':'") + |")|
End If
'und das Feld NA_Gewerk die gewünschten Gewerke enthält
Set myItem = pdoc.GetFirstItem("NA_Gewerk")
If myItem.Text <> "" Then
formula = formula + |& @IsMember(NA_Gewerk;"| + StrReplace(myItem.Text,";","':'") + |")|
End If
Set myItem = pdoc.GetFirstItem("DokSel")
If myItem.Text <> "" Then
formula = formula + |&| + StrReplace(myItem.Text,";","&")
End If
' die private Ansicht ausfindig machen
Forall v In db.views
If v.Name = "privatNAV" Then
isPrivateView = False
Set vdoc = v.parent.GetDocumentByUnid( v.UniversalID )
If Not (vdoc Is Nothing) Then
If vdoc.HasItem("$Flags") Then
If Instr(vdoc.GetItemValue("$Flags")(0), "V") Then
Set defaultview = v
End If
End If
End If
End If
End Forall
' nur falls es doch mal schief geht
If defaultView Is Nothing Then
Print "probleme mit der Ansicht"
Exit Sub
Else
'übernehmen der Auswahl
defaultview.Selectionformula=formula
'übernehmen der Spalten
Set myItem = pdoc.GetFirstItem("Columns")
If myItem.Text <> "" Then
Forall c In defaultview.Columns
If c.Title <> "" Then
If Instr(1, myItem.Text, c.Title, 5) > 0 Then
c.IsHidden = False
Else
c.IsHidden = True
End If
End If
End Forall
End If
Call workspace.ViewRebuild
End If
Exit Sub
errmsg:
Print Error() & " :CreateUserViewNAV: " & Err() & " on line " Erl()
End Sub
Wie schon gesagt bekommen Anwender ein Berechtigungsproblem beim ViewRebuild.
Alles andere
Call workspace.OpenDatabase( s.CurrentDatabase.server, sCurrentDatabase.FilePath)
oder
defaultview.Refresh
aktualisiert nicht die Ansicht, wie gewünscht.
Wie kann ich sonst die Möglichkeit "Ansicht anpassen..." für den User nutzen?
Danke schon einmal
Mara