Stimmt. Und wenn der User dann aus dem Dokument möchte, wird er ja gefragt ob er speichern möchte.
Du hast vollkommen recht. Die anderen Mitglieder müssen auch aktuallisiert werden. das ganze sieht dann so aus:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim ws As New Notesuiworkspace
Dim db As NotesDatabase
Dim session As New NotesSession
Dim doc As NotesUIDocument
Dim backDoc As NotesDocument
Dim agent As NotesAgent
Dim PatnerID As String
Dim LGrad As String
Dim Dummy As Integer
Set doc = ws.CurrentDocument
Set db = session.CurrentDatabase
Set backDoc = Source.Document
Call doc.FieldSetText("SaveControlle","")
Call doc.Refresh
LGrad =doc.FieldGetText("CalcLeistungsgrad")
If doc.FieldGetText("GNummer") <>"" Then
Goto WithGroup
End If
If doc.FieldGetText("GNummer") ="" And doc.FieldGetText("LGNummer") <>"" Then
Call ws.Prompt(Prompt_OK, "Achtung !","Es wurde kein Gruppe hinterlegt. Das Speichern wurde abgebrochen.")
Dummy = 0
Goto StopSave
End If
If LGrad="" Or Cint(Strleft(LGrad , "," )) =0 Or Cint(Strleft(LGrad , ",")) > 139 Then
Dummy = ws.Prompt(Prompt_YesNO, "Achtung !","Leistungsgrad ist 0 oder größer 139%. Trotzdem Speichern?")
StopSave:
If dummy = 0 Then
Continue = False
Call doc.FieldSetText("SaveControlle","")
Exit Sub
Elseif dummy = 1 Then
Continue = True
Else
Continue = False
Call doc.FieldSetText("SaveControlle","")
Exit Sub
End If
End If
WithGroup:
If doc.FieldGetText("GNummer") <>"" Then
If Not doc.EditMode Then
Set doc = ws.EditDocument(True)
End If
PatnerID = doc.FieldGetText("PatnerID")
Call session.SetEnvironmentVar( "PrämienLDateID", PatnerID )
Call doc.Refresh
End If
Call doc.FieldSetText("SaveStatus","1")
Call doc.FieldSetText("SaveControlle","1")
End Sub
Sub Postsave(Source As Notesuidocument)
Dim gSession As New NotesSession
Dim view As NotesView
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim currentDB As NotesDatabase
Dim mailDoc As NotesDocument
Dim rtItem As NotesRichTextItem
Dim Dummy As String
Dim DummyVariant As Variant
Dim i As Integer
Const Ansicht1 = "ALLDocID"
Set currentDB = gSession.CurrentDatabase
Set view = currentDB.GetView( Ansicht1 )
Set dc = currentDB.Search( |@False|,Nothing, 0 )
Dummy = gSession.GetEnvironmentString( "PrämienLDateID" )
If Dummy ="" Then
Goto Ende
Else
DummyVariant = Fulltrim(Split (Dummy , ";"))
End If
Forall x In DummyVariant
Set doc = view.GetDocumentByKey(x)
Call dc.AddDocument(doc)
End Forall
For i= 1 To 4
Set doc = dc.GetFirstDocument
While Not doc Is Nothing
Dim success As Variant
success = doc.ComputeWithForm( False, False )
Call doc.Save( True, False )
Set doc =dc.GetNextDocument(doc)
Wend
Next
Ende:
Call gSession.SetEnvironmentVar( "PrämienLDateID", "" )
End Sub
Wobei ich mir sicher bin das ich noch viel optimieren kann.
Aber funktionieren tut es.