Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TomLudwig am 18.11.03 - 10:04:39
-
Hallo,
mit der Mehtode NotesUIView.documents bekomme ich immer nur die Dokumente die ich wirklich angehakt habe.
Falls aber kein Dokument angehagt wurde soll mir das gerade ausgewählte Dokument (schwarz umrandete) zurück gegeben werdne.
Wie kann ich das realisieren?
-
Findest Du das nicht im CurrentDocument des Workspace? Versuch mal
-
Das geht nicht mit NotesUIWorkspace.CurrentDocument, steht so auch in der Hilfe.
Du könntest über eine DocumentCollection das Dokument bekommen. Wenn keine Dokumente in der View markiert sind, enthält NotesDatabase.UnprocessedDocuments nur das aktuelle eingerahmte Dokument.
Also so :
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
-
Über CurrentDocument bekomme ich zwar "anscheinend" das Dokument aber wenn ich dann auf die Eigenschaft Responses zugreife ist diese nicht gefüllt.
Wenn ich das Dokument anhacke und dann auf die Eigenschaft zugreife finde ich die Antwortdokumente...
Ich versuche mal den Vorschlag mit den Unprocessed Dokuments....
-
Ich poste jetz einfach mal den kompletten Code. Es funktioniert nämlich überhaupt nicht! ahhhhh!
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
Dim uiwork As New NotesUIWorkspace
Dim uiview As NotesUIView
Dim strViewName As String
Set uiview = uiwork.CurrentView
strViewName = uiview.ViewName
Select Case strViewName
Case "AdvancedArchiv":
returnvalue = Messagebox("Aus dieser Ansicht können keine Dokumente gelöscht werden!",MB_OK, "Fehler beim löschen...")
continue = False
Case "Archiv":
Dim doccoll As NotesDocumentCollection
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set doccol = uiview.Documents
If doccol.Count = 0 Then
Set db = session.CurrentDatabase
Set doccoll = db.UnprocessedDocuments
Set doc = doccoll.GetFirstDocument
Else
Set doc = doccol.GetFirstDocument
End If
Dim nextDoc As NotesDocument
Dim responses As NotesDocumentCollection
Dim dummy As NotesDocument
Dim tmpdoc As NotesDocument
Do While Not (doc Is Nothing)
Set responses = doc.Responses
Set dummy = responses.GetFirstDocument
While Not (dummy Is Nothing)
Set tmpdoc = responses.GetNextDocument(dummy)
Call dummy.Remove(True)
Set dummy = tmpdoc
Wend
Set nextDoc = doccoll.GetNextDocument(doc)
Call doc.Remove(True)
Set doc = nextDoc
Loop
continue = True
End Select
End Sub
-
Hi,
also wenn das ne 1:1-Kopie des Scriptes ist, dann achte mal auf die Variablennamen. Du schreibst doccol unterschiedlich (doccol / doccoll).
-
OK, dab in ich selber schuld. Das muss ich zugeben.
Nun funktionierts aber immernoch nicht. In der Zeile
If doccoll.Count = 0 Then
Set db = session.CurrentDatabase
Set doccoll = db.UnprocessedDocuments
Set doc = doccoll.GetFirstDocument
Else
Set doc = doccoll.GetFirstDocument
End If
Wird immernoch nichts in die Variable doc reingeschrieben.
Nochmal zum Verständnis:
Ich klicke in der Ansicht auf das Dokument und dann auf Etf. Dann sollen sowohl alle Antwortdokumte und das "ausgewählte" Dok gelöscht werden