Domino 9 und frühere Versionen > Entwicklung
Drucken im Backend
TMC:
Klingt seltsam. Darfst Du Drucken, also ist kein $KeepPrivate vorhanden?
Ich habe hier in einer App folgenden funktionierenden Code:
--- 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
--- Ende Code ---
Unterschied zu Deinem Code:
a) ich leere $KeepPrivate
b) Set uidocTempPrint = uiws.EditDocument( False, doc, True) anstatt Deinem Zweizeiler
TMC:
Nachtrag:
Danach bitte wieder "aufräumen", also zum Schluss noch ein:
doc.Form = "frmStandard"
Hintergrund: Könnte sein, dass User nach dem Printen das Dok weiterbearbeitet und speichert, und da soll natürlich dann nicht die PrintForm als Standardform verbleiben.
koehlerbv:
Es wird an der doppelten Verwendung des uidoc liegen - kann das aber gerade nicht verifizieren.
Nimm mal folgenden einfacheren Code:
--- Code: ---Set doc = ws.CurrentDocument.Document
doc.Form = "Druckmaske"
Set uidoc = ws.EditDocument( False, doc, True)
Call uidoc.Print (1)
Call uidoc.close
--- Ende Code ---
@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
TMC:
--- Zitat von: koehlerbv am 18.10.04 - 23:40:28 ---@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.
--- Ende Zitat ---
Probiere es aus Bernhard:
In dem Beispiel wird im BackendDoc, welches über das *Current* Frontend-Doc instantiiert wurde, ein Item gesetzt.
Ich würde mich schwer täuschen, würde das Setzen des Items nicht verweilen, solange das Current-UIDoc offen ist. Folgt also nach dem Print-Buthong ein Klick auf einen weiteren Buthong, der z.B. erneut das UIDoc ins Backend instantiiert und dort dann ein call NotesDocument.Save macht, dann wird die "DruckMaske" als neue Form gesetzt.
Ist mir auch schon so passiert, daher mein expliziter Hinweis darauf.
koehlerbv:
Ich habe das Procedere mit dem Code wie oben gepostet bei mir mehrfach zu laufen. Da kommen etliche tausend Anwender zusammen. Da hätte sich schon mal wer beschwert ;)
Wie gesagt - das uidoc fällt nach dem Drucken sofort zu. Damit entfällt auch das das Backend-Document.
Wird natürlich entweder doc oder uidoc irgendwie im Focus behalten - selbstverständlich muss dann Form wieder zurückgesetzt werden. Nicht aber im Kontext von skywook oder meinem Code.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln