Hallo an alle,
ich versuche gerade ein View-Eintrag zu löschen. Leider klappt das nicht.
Vielleicht findet jemand den Fehler.
Hier der Quellcode:
Sub Click(Source As Button)
Dim ns As New NotesSession
Dim db As NotesDatabase
Set db = ns.CurrentDatabase
Dim nd As New NotesDocument(db)
Dim view As NotesView
Dim vec As NotesViewEntryCollection
Set view = db.GetView("Papierkorb")
Set vec = view.GetAllEntriesByKey("Name")
Call vec.RemoveAll(True)
End Sub
"Papierkorb" ist ein Folder. Kann man das mit einer View vergleichen bzw. habe ich mit db.GetView alles richtig gemacht?
"Name" ist der Wert eines Column, also einer Spalte.
Anbei ein Screenshot zur Veranschaulichung.
Liebe Grüße
Giordano
Hi Glombi,
danke, für den Hinweis!
Ich habe es jedoch so gemacht:
Sub Click(Source As Button)
Dim ns As New NotesSession
Dim nuiw As New NotesUIWorkspace
Dim db As NotesDatabase
Set db = ns.CurrentDatabase
Dim nd As New NotesDocument(db)
Dim view As NotesView
Dim vec As NotesViewEntryCollection
Set view = db.GetView("Papierkorb")
Set vec = view.AllEntries
Call vec.RemoveAll(True)
Call nuiw.ViewRefresh
End Sub
Hat diese Vorgehensweise gegenüber deine irgendwelche Nachteile?
Wie kann ich außerdem kontrollieren, ob ein Eintrag markiert ist, oder nicht?
Wenn ich nur markierte Einträge löschen möchte, käme wohl deine Variante in Frage.
Liebe Grüße
Giordano
Hi Glombi,
danke, für deine Antwort!
Ich habe mal versucht deine Hinweise umzusetzen. Leider wird nur ein Element gelöscht. Außerdem kommt folgende Fehlermeldung:"Function requires a valid ADT argument".
Hier mein Quellcode:
Sub Click(Source As Button)
Dim nuiw As New NotesUIWorkspace
Dim ns As New NotesSession
Dim db As NotesDatabase
Set db = ns.CurrentDatabase
Dim dc As NotesDocumentCollection
Dim nextdoc As NotesDocument
Dim doc As NotesDocument
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
Do While Not (doc Is Nothing)
Set nextdoc = doc
Call doc.RemovePermanently(True)
Set nextdoc = dc.GetNextDocument(nextdoc)
Set doc = nextdoc
Loop
Call nuiw.ViewRefresh
End Sub
In meinem Code habe ich zusätzlich in der Schleife Set nextdoc = dc.GetNextDocument(nextdoc) eingefügt, da ja Lotus bei jedem Schleifendurchgang das nächste Dokument holen sollte.
Liebe Grüße
Giordano