Das Event, das Du brauchst heisst "QueryAddToFolder" und muss in der View gesetzt sein, aus der das Drag & Drop gestartet wird. In Source.Documents bekommst Du dann alle gewählten Dokumente, in "Target" steht der "Ziel"- Ordnername. im einfachsten Fall machst Du sowas wie:
if Cstr( Target ) = "Archiv" then
Call Source.Documents.StampAll( "Archiv" , "1" )
End If
Und dann in der Ansicht: SELECT -DeineSelektion- & Archiv != "1"
Also verschieben tue ich eigentlich nichts per Code. Ich wähle das Sitzungsdokument aus der Ansicht aus (wo auch die Antwortdokumente angezeigt werden) und verschiebe es in den Ordner. Dort sind dann automatisch auch die Antwortdokumente mit verschoben worden.
Im "Queryaddtofolder" der Ansicht - aus der ich die Sitzung rüberschiebe - habe ich folgenden Code.
Sub Queryaddtofolder(Source As Notesuiview, Target As Variant, Continue As Variant)
Dim work As New NotesUIWorkspace
Dim doc As NotesDocument
Dim docsVorlagen As NotesDocumentCollection
Dim docVorlage As NotesDocument
Dim zaehler1 As Integer
Dim zaehler2 As Integer
If Cstr(Target) = "foSitzungenArchiv" Then
For zaehler1 = 1 To Source.Documents.Count
Set doc = Source.Documents.GetNthDocument(zaehler1)
If doc.GetItemValue("Form")(0) = "frmSitzung" Then
Set docsVorlagen = doc.Responses
For zaehler2 = 1 To docsVorlagen.Count
Set docVorlage = docsVorlagen.GetNthDocument(zaehler2)
If docVorlage.GetItemValue("versteckt_vorl_geloescht")(0) = "false" Then
docVorlage.ReplaceItemValue "versteckt_vorl_Archiv", "true"
docVorlage.Save True, True
End If
Next zaehler2
doc.ReplaceItemValue "versteckt_sitz_Archiv", "true"
doc.Save True, True
Else
Continue = False
End If
Next zaehler1
work.ViewRefresh
End If
End Sub
Der prüft ja nur, ob es auch der Archiv-Ordner ist ("foSitzungenArchiv" und geht dann die zu verschiebenen Dokumente durch und setzt das Archiv-Flag im Dokument, sodass diese in der Ursprungsansicht nicht mehr angezeigt wird.
Betätige ich eben vor dem Verschieben die "Löschen"-Aktion wird das Feld "versteckt_vorl_geloescht" auf "true" gesetzt. Aber dennoch schiebt er es mit rüber, weil es ja technisch trotzdem noch ein Antwortdokument ist, auch wenn es in der Ansicht nicht mehr angezeigt wird.
Im "Queryopen" des Ordners habe ich dann folgendes versucht. Beim Versuch, ein "gelöschtes" Antwortdokument aus dem Ordner zu entfernen, kommt dann die Meldung "Notes Fehler: Wenn Sie ein Antwortdokument aus einem Ordner entfernen möchten, der die Antworthierarchie anzeigt, müssen Sie auch das Hauptdokument der obersten Ebene entfernen (foSitzungenArchiv)".
Sub Queryopen(Source As Notesuiview, Continue As Variant)
Dim work As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim entries As NotesViewEntryCollection
Dim doc As NotesDocument
Dim zaehler1 As Integer
Set db = session.CurrentDatabase
Set view = db.GetView("foSitzungenArchiv")
Set entries = view.AllEntries
For zaehler1 = 1 To entries.Count
Set doc = entries.GetNthEntry(zaehler1).Document
If doc.GetItemValue("Form")(0) = "frmSitzung" Then
If doc.GetItemValue("versteckt_sitz_geloescht")(0) = "true" Then
doc.RemoveFromFolder("foSitzungenArchiv")
End If
Elseif doc.GetItemValue("Form")(0) = "frmVorlagenthema" Then
If doc.GetItemValue("versteckt_vorl_geloescht")(0) = "true" Then
doc.RemoveFromFolder("foSitzungenArchiv")
End If
End If
Next zaehler1
work.ViewRefresh
End Sub
Ich hoffe, ich verwirre nicht zu sehr mit meinem Beitrag.
Vielen Dank für deine Mühe!
Thomas