Hallo zusammen,
ich weiß leider nicht mehr weiter. Habe einige Sachen hier zu der Methode durchprobiert, aber leider brachte weder ein "view.refresh", ein "True" um den richtigen Treffer zu erzwingen, noch definitiv einen String als GetDocumentByKey Variable zu verwenden oder Shift + F9 ...
Der Hintergrund:Ich habe ein Dokument pro Ausbilder in einer Urlaubsdatenbank. In diesem Dokument werden dem Ausbilder bestimmte Gruppen zugeordnet (Feld mit Checkboxen). Ich möchte mit dem QuerySave nun prüfen, ob eine der ausgewählten Gruppen schon eine Zuordnung hat. Dazu gibt es die Ansicht "_Profile_Ausbildung_byGroups", die 3 Spalten enthält:
Berufsgruppe (Standard, Sortiert, aufsteigend)
AusbilderIn (Standard, nicht sortiert)
Profil erstellt (Standard, nicht sortiert)
Querysave:Sub Querysave(Source As Notesuidocument, Continue As Variant)
' Checks the view "_Profile_Ausbildung_byGroups", if for one of the selected groups there
' is already a trainer assigned
Dim session As New NotesSession
Dim db As NotesDatabase
Dim lookup_view As NotesView
Dim view_doc_ausbilder As NotesDocument
Dim doc_value_ausbilder As String
Dim view_value_ausbilder As String
Dim str_doc_value_gruppe As String
Set db = session.CurrentDatabase
Set lookup_view = db.GetView("_Profile_Ausbildung_byGroups")
Set doc = source.Document
doc_value_ausbilder = Source.FieldGetText("ausbilder")
doc_value_gruppen = doc.GetItemValue("gruppen")
If doc_value_gruppen(0) <> "" Then ' no group is assigned in the document therefore we do not need to check anything
Forall doc_value_gruppe In doc_value_gruppen
' to ensure, that we use the GetDocumentByKey Function with a string
str_doc_value_gruppe = Cstr(doc_value_gruppe)
' Get view with name of the group currently handled
Set view_doc_ausbilder = lookup_view.GetDocumentByKey(str_doc_value_gruppe,True)
If Not view_doc_ausbilder Is Nothing Then
view_value_ausbilder = view_doc_ausbilder.ausbilder(0)
If (view_value_ausbilder <> "") And (view_value_ausbilder <> doc_value_ausbilder) Then
continue = False
Messagebox "Leider kann eine Gruppe ... das Dokument wurde nicht gespeichert."
End If
Else
' view couldn't be located; means either the view does not exist or the viewdocument cannot be found
' (happend during development, if only one group is assigned and the document is saved the first time)
Msgbox "view_doc_ausbilder couldn't be located"
End If
End Forall
End If
End Sub
Das Fehlerbild:Wenn ich das Dokument abspeichere ohne eine einzige Gruppe ausgewählt zu haben dann läuft alles super durch und er checkt auch, dass keine Gruppe ausgewählt ist. Sobald ich nun eine einzige Gruppe auswähle und speichere wird die Variable 'view_doc_ausbilder' nicht gefüllt und meine jetzt eingebaute Fehlermeldung erscheint. Sobald ich unmittelbar danach nochmal abspeicher, wird die Variable ordnungsgemäß gefunden.
Ich wäre Euch für jeden heißen Tipp dankbar, da ich echt nicht mehr weiß, woran das noch liegen kann.
Danke und schönen Gruß
Sascha