Hi zusammen
Ich habe eine DocumentCollection, welche aus zwei verschiedenen Quellen stammen kann:
1. Database.UnprocessedDocuments oder
2. Database.Search
Nun benötige ich vom Dokument die Eigenschaft "ColumnValues". Diese funktioniert bekanntlich nur, wenn das Dokument aus einer View stammt.
Da die Dokumente aber von der Collection stammen, musste hier eine Übersetzung ins View-Document geschehen. Ich picke also dasselbe Dokument der Collection, aus der View.
Dies geschieht so:
Set doc2 = View.GetNextDocument(doc)
If doc2 Is Nothing Then
Set doc2 = View.GetPrevDocument(doc)
If doc2 Is Nothing Then
'doc from the collection does not exist in this view -> go to the next doc
Else
Set doc2 = View.GetNextDocument(doc2)
End If
Else
Set doc2 = View.GetPrevDocument(doc2)
End If
Wobei doc2 das Dokument aus der View und doc das Dokument aus der Collection ist.
Hat die Collection nun als Quelle "UnprocessedDocuments", funktioniert alles einwandfrei, werden die Dokumente aber mit "Database.Search" gesucht, behauptet die erste Anweisung "Set doc2 = View.GetNextDocument(doc)" jedesmal "The document is not in view xxx". ???
Hat jemand eine Idee, wie ich diese "Übersetzung" anders gestalten könnte, oder was der Unterschied zwischen den beiden Collections ist?
Danke und Grüsse
Moritz
Ich denke, ich werde es mal mit
numDocs& = notesView.FTSearch( query$, maxDocs% )
probieren. Das Problem hier ist, die Datenbank ist nicht indiziert... da sei die Performance laut Hilfe auch ganz schlecht. Mal sehen...
Moritz
EDIT: Mist! Das gibt ja nur die Anzahl gefundener Dokumente zurück aber nicht die Dokumente selbst. >:(
Zu früh gefreut. Funktioniert leider doch nicht....
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim uiWS As New NotesUIWorkspace
Dim view As NotesView
Dim doc1 As NotesDocument
Dim doc2 As NotesDocument
Dim entry As NotesViewEntry
Dim entryCollection As NotesViewEntryCollection
Set view = uiWS.CurrentView.View
Set entryCollection = view.AllEntries
Set db = view.Parent
Set dc = db.UnprocessedDocuments
Set doc1 = dc.GetFirstDocument
Set entry = entryCollection.GetEntry(doc1)
Set doc2 = entry.Document
Msgbox doc2.ParentView.Name
Msgbox doc2.ColumnValues(0)
Das Dokument (doc2) hat nichteinmal mehr die Parent-View. Aber gesetzt wird es, die UNID kann ich mir zum Beispiel ausgeben lassen.
Habe ich jetzt was übersehen?
Moritz