Klingt seltsam. Darfst Du Drucken, also ist kein $KeepPrivate vorhanden?
Ich habe hier in einer App folgenden funktionierenden Code:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim uidocTempPrint As NotesUIDocument
Set db = session.CurrentDatabase
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
doc.Form = "DruckMaske"
doc.~$KeepPrivate = ""
Set uidocTempPrint = uiws.EditDocument( False, doc, True)
Call uidocTempPrint.Print
Call uidocTempPrint.close
Unterschied zu Deinem Code:
a) ich leere $KeepPrivate
b) Set uidocTempPrint = uiws.EditDocument( False, doc, True) anstatt Deinem Zweizeiler
Es wird an der doppelten Verwendung des uidoc liegen - kann das aber gerade nicht verifizieren.
Nimm mal folgenden einfacheren Code:
Set doc = ws.CurrentDocument.Document
doc.Form = "Druckmaske"
Set uidoc = ws.EditDocument( False, doc, True)
Call uidoc.Print (1)
Call uidoc.close
@Matthias: Das mit dem Rücksetzen des Form-Items ist unnötig, da der Anwender keine Chance hat, das Doc zu bearbeiten - das fällt nach dem Drucken wieder zu und ist gegen das Versetzen in den EditMode durch die entsprechenden Parameter geschützt.
HTH,
Bernhard
Bernhard, ich habe jetzt auch Deinen Code getestet.
System: R5.0.11
Geöffnetes Dok.
1. Man betätigt diesen Button:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uiws As New NotesUIWorkspace
Dim uidocTempPrint As NotesUIDocument
Set db = session.CurrentDatabase
Set doc = uiws.CurrentDocument.Document
doc.Form = "frmPrint"
Set uidocTempPrint = uiws.EditDocument( False, doc, True)
Call uidocTempPrint.Print
Call uidocTempPrint.close
2. Man betätigt diesen Button:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim uidocTempPrint As NotesUIDocument
Set db = session.CurrentDatabase
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
doc.Subject = "HALLO WELT"
Call doc.Save(True,True)
Problem: Es wird definitiv so die Druckmaske "frmPrint" beibehalten und gespeichert (!!!), zumindest in meiner Test-DB !
Hat mich auch gewundert, denn so unterschiedlich sind die Codes nicht auf den 2. Blick.