Domino 9 und frühere Versionen > ND6: Entwicklung

Soft löschen im Database Script

<< < (2/2)

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