Sub Initialize
Dim session As New NotesSession
Dim db As Notesdatabase
Dim collMarked As NotesDocumentCollection
Dim docToChange As NotesDocument
Dim docTemp As NotesDocument
Dim nuiw As New NotesUIWorkspace
'Hol die aktuelle Datenbank
Set db=session.CurrentDatabase
'Hol die markierten Dokumente
Set collMarked = db.UnprocessedDocuments
'Hol das erste der Markierten Dokumente
Set docToChange = collMarked.GetFirstDocument
'Schleife um die markierten Dokumente der Reihe nach zu löschen
While Not (docToChange Is Nothing)
' Das nächste zu löschende Dokument wird schonmal rausgesucht
Set docTemp = collMarked.GetNextDocument (docToChange)
'Löschen nur bei Antwortdokumenten (Mitarbeiter) durchführen
If doctochange.IsResponse Then
'Hier wird das Hauptdokument gesucht und dort die SummederPunkte reduziert und WerteinesPunktes neu gerechnet
Dim Hauptdok As NotesDocument
Dim Ref As String
Ref = docToChange.ParentDocumentUNID
Set Hauptdok = db.getdocumentbyUNID(Ref)
Hauptdok.SummederPunkte=Hauptdok.SummederPunkte(0) - docToChange.LOBPunkte(0)
If Hauptdok.SummederPunkte(0)=0 Then
Hauptdok.WerteinesPunktes=0
Else
Hauptdok.WerteinesPunktes=Hauptdok.Verteilsumme(0)/Hauptdok.SummederPunkte(0)
End If
Call Hauptdok.Save(True,False)
'Der geänderte WerteeinesPunktes vom Hauptdokument wird an die Antwortdokumente übergeben
Dim dc As NotesDocumentCollection
Set dc = Hauptdok.Responses
Call dc.StampAll( "WerteinesPunktes" , Hauptdok.WerteinesPunktes(0) )
'Das aktuell markierte Dokument wird gelöscht
Call docToChange.Remove( True)
End If
'Das schon rausgesuchte, nächste Dokument wird zum aktuellen Dokument
Set docToChange = docTemp
Wend
'Ansicht aktualisieren
Call nuiw.ViewRebuild
End Sub
Er zeigt auf garkein Dokument, erst beim zweiten Mal zeigt er auf das ausgewählte Dokument.
... ist die Tatsache, dass er trotz nur einem Antwortdokument bei collmarked auch mal 2 anzeigt, und wir vermuten dass da auch das (nicht angemarkte) Hauptdokument mit aufgenommen wird.
Es hat sich gegen Schluß, bevor wir gehen mussten, verdichtet, dass das was mit dem Speichern des Antwortdokumentes zu tun hat. Dokument markieren und löschen geht nicht, Dokument markieren, öffnen, speichern, und dann löschen funktioniert. Aber warum, da hab ich noch keinen Schimmer.
'Hol die markierten Dokumente
Set collMarked = db.UnprocessedDocuments
'Hol das erste der Markierten Dokumente
Set docToChange = collMarked.GetFirstDocument
If collMarked.Count = 0 Then
doctochange = session.getDocumentContext
Else
doctochange = collMarked.GetFirstDocument
End IfIf doctochange Is Nothing then
Exit Sub
End IfSet doctochange = collMarked.GetFirstDocument
If doctochange is Nothing Then
Set doctochange = session.getDocumentContext
End If
If doctochange Is Nothing then
Exit Sub
End If
If Isnull(doctoChange) = False Then
Set docToChange = session.DocumentContext
End If
If doctochange Is Nothing Then
Exit Sub
End If
Das nächste zu löschende Dokument wird schonmal rausgesucht
Set docTemp = collMarked.GetNextDocument (docToChange)
Das aktuell markierte Dokument wird gelöscht
Call docToChange.Remove( True)
normalerweise hät ich kein Problem damit eine DB hier reinzustellen, aber in dem Fall lieber nicht. Es geht um Mitarbeiterbewertungen und Leistungsorientierte Bezahlung, ein Thema das hier grad seeeehr mit der heissen Nadel gestrickt wird. Daher ist das ein brisantes Thema und ich möchte lieber nicht dass die DB solange sie nicht 100 fertig ist meinen Raum hier verlässt. Bitte um Verständnis.