Gerade mit Deiner DB gestetet: Ist bei mir auch so:
Strg+A, dann Drucken --> es werden 2 statt 3 Dokumente gedruckt. Das letzte nicht.
Testumgebung: ND 6.5.3 Englisch, lokal
Die UnproccessedDocuments - Methode funktioniert aber korrekt, ich hab mal folgenden Code in einem View-Button getestet:
Sub Click(Source As Button)
On Error Goto ErrorHandler
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
While Not(doc Is Nothing)
Msgbox "Kategorie: " & doc.Kategorie(0) & Chr(10) & "Text: " & doc.Text(0),64, "Test"
Set doc = collection.GetNextDocument(doc)
Wend
GoOut:
Exit Sub
ErrorHandler:
Msgbox "Fehler " & Err & " - " & Error$ & Chr(10) _
& "in Zeile " & Erl, 48, "Laufzeitfehler"
Resume GoOut
End Sub
Ist also ein Bug so wie ich das sehe.
Könntest halt mit obigem Codebeispiel einen Workaround reinbauen. Und statt der Messagebox dann:
Set uidoc = uiws.EditDocument( False, doc, True)
Call uidoc.Print (1)
Call uidoc.close(True)
@Daniel: kann man hier nicht Problem 1 von Problem 2 isolieren?
Wie willst Du denn drucken? Aus der Ansicht? Oder wie danach beschrieben die gefundenen Dokumente?
Falls 2.:
Ich würde das mit LotusScript machen.
User durchsucht die DB nach irgendwelchen Kriterien. Vermutlich db.Search ???
Also z.B. Set collection = db.Search(strSearchFormula, datetime, 0)
Nun hast Du also alle relevanten Dokumente in einer NotesDocumentCollection (collection).
Nun druckst Du die Dokumente per LS.
Z.B.:
Set docLoop = collection.GetFirstDocument
While Not(docLoop Is Nothing)
docLoop.Form = "frmPrint" 'Deine Druck-Maske - bitte ohne den oben erwähnten @Formula
Set uidocPrint = uiws.EditDocument( False, docLoop, True)
Call uidocPrint.Print (1)
Call uidocPrint.close
Set docLoop = collection.GetNextDocument(docLoop)
Wend