Domino 9 und frühere Versionen > ND8: Entwicklung
Problem mit löschen von Dokumenten in einer Collection
(1/1)
Pir0x:
Huhu, ich hab hier nenn kleines Problem beim löschen von Dokumenrt, aus meiner View.
Also ich möchte alle markierten Dokumente löschen, dazu hohl ich sie mir erstmal alle in eine Collection, guck dann ob das Kriterium (Projektzeit) sinvoll ist, wenn sie 0 ist, soll das Dokument zum löschen frei gegeben sein, wenn es nicht der Fall ist, wird das Dokument ist der Collection herausgenommen.
Zum Schluss sollen dann die nicht sinnvollen Dokumente, die in der Collection verblieben sind, gelöscht werden.
hier der QT dazu:
--- Code: ---Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Set uiview = ws.CurrentView
Set dc = uiview.Documents
Set doc = dc.GetFirstDocument
While Not (doc Is Nothing)
If doc.HasItem ("BewP_Projektzeit") Then
If doc.GetItemValue ("BewP_Projektzeit") (0) <> 0 Then
Call dc.DeleteDocument(doc)
End If
End If
Set doc = dc.GetNextDocument (doc)
Wend
If dc.Count <> 0 Then
Call dc.RemoveAll(True)
End If
End Sub
--- Ende Code ---
Problem an der Sache ist jetzt, wenn ich ein Dokument aus der Collection herausnehmen, wird er mir nenn Fehler bei Set doc = dc.GetNextDocument (doc) geben.
Ich steh da gerade irgendwie aufen Schlauch wie ich das alternativ lösen kann und wollte euch mal um einen Rat bitte :)
Gruß Ricco
ZaLudtske:
Hallo,
arbeite mit dem NotesView-Objekt und der NotesViewEntryCollection, dann solltest du keine Probleme haben
HTH
Rainer
DerAndre:
Das übliche Problem.
Mit dem löschen des Dokumentes ziehst Du Dir den Bezug unter dem Popo weg.
Was Du machen kannst, ist dir als erstes in der while Schleife das nächste Doc aus der Collection holen und am Ende machst Du dann nicht doc = dc.next... sondern doc = nextdoc
Pir0x:
wenn ich dich richtig verstanden hab meisnt du das so
--- Code: ---While Not (doc Is Nothing)
Set nextdoc = dc.GetNextDocument(doc)
If doc.HasItem ("BewP_Projektzeit") Then
If doc.GetItemValue ("BewP_Projektzeit") (0) <> 0 Then
Call dc.DeleteDocument(doc)
End If
End If
Set doc = nextdoc
Wend
--- Ende Code ---
also so funktionierts, danke Andre
DerAndre:
Jepp so meinte ich das.
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln