Domino 9 und frühere Versionen > ND6: Entwicklung
Soft löschen im Database Script
eknori:
OK, fangen wir alsio wieder beim Urschleim an; WAS funktioniert denn an deiner anfangs geposteten Routine nicht ?
Das Problem, das du hast ist, daß das Löschen der Antwortdocs ja wieder den Querydocumentdelete event auslöst; dumm gelaufen.
TMC:
Würde es so machen:
--- Code: --- Dim uiws As New NotesUIWorkspace
Dim collection As NotesDocumentCollection
Dim docLoop As NotesDocument
Dim docTemp As NotesDocument
Set collection = Source.Documents
Set docLoop = collection.GetFirstDocument
While Not (docLoop Is Nothing)
Set docTemp = collection.GetNextDocument(docLoop)
If docLoop.IsResponse Then
Call docLoop.Remove( True )
Else
Call docLoop.ReplaceItemValue("Status", "Archiv")
Call doc.Save(True, True)
End If
Set docLoop = docTemp
Wend
continue=False 'Damit das Lösch-Symbol weg ist in der View
Call uiws.ViewRefresh
--- Ende Code ---
D.h. im QuerydocDelete-Event wird jedes selektierte Dok durchlaufen.
Über docLoop.IsResponse wird geprüft, ob es ein Antwort-Dokument ist. Wenn ja, dann löschen, wenn nein, dann Status ändern.
TMC:
--- Zitat von: eknori am 17.10.05 - 19:03:59 ---Das Problem, das du hast ist, daß das Löschen der Antwortdocs ja wieder den Querydocumentdelete event auslöst; dumm gelaufen.
--- Ende Zitat ---
Nicht ganz,
Normalerweise hat man eine View vom Typ "Shared, contains deleted documents". Dort rein wandern die Dokumente u.a. bei NotesDocument.Remove. Der QueryDocumentDelete - Event greift nicht in dieser View, zumindest nicht in ND6, in R5 schon. Kann man abfangen durch die Abfrage der View im Event, also z.B. >>if uiworkspace.currentview.viewname = "Papierkorb"<<.
koehlerbv:
--- Zitat von: eknori am 17.10.05 - 19:03:59 ---Das Problem, das du hast ist, daß das Löschen der Antwortdocs ja wieder den Querydocumentdelete event auslöst; dumm gelaufen.
--- Ende Zitat ---
Wird das Löschen im Backend ausgeführt, wird QueryDocumentDelete nicht rekursiv aufgerufen - bestimmt nicht.
Bernhard
Alexis:
Hallo Forum, hallo TMC,
die richtige Mischung macht's:
Die Konstruktion von TMC und eine eigene Routine (Sub DeleteResponseDocs (doc As NotesDocument)) zum Löschen der Antwortdokumente löst meine Aufgabe. Dabei müssen nicht einmal die Responses markiert werden.
Danke für die Antworten.
Alexis
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln