Domino 9 und frühere Versionen > Entwicklung

Collection durchlaufen und dabei Doc removen

<< < (3/3)

eknori:
warum macht ihr euch das Leben denn so schwer ?? Warum nimmst du nicht eine NotesViewEntryCollection, die du entsprechend deinem Suchkriterium füllst und dann mit vc.removeAll alle documente löscht ??

Oder habe ich da etwas falsch verstanden ?

Du möchtest doch erreichen, daß aus einem Ordner ( View ) alle Dokumente mit einem bestimmten Kriterium gelöscht werden.

 ??? ??? ???

ata:
... das wäre natürlich das eleganteste...

ata  ;D

Don Pasquale:
@ata:
Du hast recht, ist ziemlich ineffizient.
Klaussal ist wohl eher davon ausgegangen, dass alle Dokumente zu verschieben sind.

Ich benötige für´s erste eine funktionierende Funktion,
danach kann ich mich um´s optimieren kümmern.

Ich habe das NotesDocumentArray zuerst mit den Kandidaten gefüllt ( das schien auch geklappt zu haben ) aber dass schlichte durchlaufen dieses Array produzierte eine Endlosschleife.


Ciao

Don Pasquale

ata:
... ich schau mir das aus Interesse heute Abend mal an...

ata

Don Pasquale:
Hier wäre der link

http://www.openntf.org/projects/codebin/codebin.nsf/81882682b238ec2685256be70008ecaf/9d3c707bdc2a378e88256c6e00128fc3!OpenDocument


Ich habe es jetzt mit einer Liste realisiert, in die ich alle UniversalIDs packe und die ich dann an Ende einmal durchlaufe.


Vielen Dank für Eure Ideen


Ciao

Don Pasquale
Hier der Auszug aus meiner Lösung

Dim LOESCHLISTE List As String*32
Dim Removedoc As NotesDocument
Dim session As New NotesSession
Dim doc As NotesDocument
Dim view As NotesView
Dim dc As NotesDocumentCollection
Dim db As NotesDatabase
Dim RemoveDoc As NotesDocument
Set session = New notessession      
Set db = session.CurrentDatabase  
Set view = db.GetView( "($Inbox)" )
Set doc = view.GetFirstDocument
   
While Not ( doc Is Nothing)

if doc.FELDA = XYZ then
  j = j + 1
 LOESCHLISTE(j) = doc.UniversalID

end if
           
Set doc = view.GetNextDocument(doc)      
Wend

Forall x In LOESCHLISTE
Set RemoveDoc = db.GetDocumentByUNID(X)   
Call Removedoc.RemoveFromFolder("($Inbox)")         
End Forall

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln