Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Small am 12.04.05 - 09:23:46
-
hiho,
mir ist für das Problem leider kein pringanter und kurzer Titel eingefallen. Darum beschreib ich das hier mal ausführlich.
Also:
Wir haben in unserer Anwendung von formatierten Memos einige Exoten, die mit Textlisten arbeiten um mehren Zeilen von bestimmten Sachen einzugegeben. (Aktenforderungen, etc.). Hintergrund ist es, dass der User nicht 5 mal ein Memo ausfüllen muss, sondern nur 1 mal mit 5 Datensätzen.
Diese Memos landen nun in einer View und müssen ausgedruckt werden.
Es wäre nun natürlich einfacher, wenn wir das Memo so ausdrucken könnten, können wir abba ned :-\
Für jeden Datensatz in dem Memo müssen wir einen Ausdruck mit einer gesonderten Druckmaske machen. Der Ausdruck wird über die bearbeitenden Stellen mittles einer Aktion veranlaßt.
Der aktuelle Stand:
Aus jeden Dokument erzeugen wir die Einzeldokumente und speichern diese mit der Form der Druckmaske ab.
Diese Dokumente werden dann in einer separaten Ansicht ausgedruckt und anschliessend wieder gelöscht.
Das Problem:
Wenn nun gedruckt wurde, bleibt die Druckview geöffnet. Das darf natürlich nicht sein.
Ein Ansatz:
Ich habe versucht im Queryopen der Ansicht den Code für den Ausdruck zu hinterlegen, aber er bekommt die Dokumente zum Ausdrucken nicht zu fassen. Im Backend ist alles da, aber die "Vorgabemaske kann nicht gefunden werden" und die Ausdrucke enthalten keine Daten. (gibt halt keinen NotesUIWorkspace)
Im Postopen bleibt die View leider geöffnet, da ich keine Idee habe, wie ich das ändern könnte.
* Hilfe * :P
Habt ihr vll eine gute Idee, Lösung ? Vll auch einen ganz anderen Gedankenansatz ?
Sitz da nun schon ne Ewigkeit dran und mir gehen echt die Ideen aus.
- Das ganze sollte im Backend sein, da wir zahlreiche Schnittstellen zu Backendmethoden haben -
Danke und Gruß René
-
hiho,
habe mir jetzt eine Lösung gebastelt, die in der Ursprungsview ein uidoc mit den Daten füllt, dieses druckt und anschliessend schließt. So brauch man nicht die View wechseln und keine extra Dokumente.
Nun hab ich da aber ein nicht unerhebliches Problem.
Wenn ich - beispielsweise - 5 Dokumente in der View zum Drucken selektiere, dann sind die nach dem Refresh nicht mehr sichtbar, aber im Backend immer noch als selektiert in der View vorhanden. Denn wenn ich die Aktion ein 2tes mal aufrufe, werden alle nochmal ausgedruckt.
Warum ?
Wenn ich die View verlasse und wieder neu aurufe, ist der Cache "sauber", aber das geht im Backend nicht so einfach (zumindesten weiß ich nicht wie).
Weiß einer von euch einen Rat ? Wäre für jede Hilfe, Erklärung dankbar. :-\
Gruß René
-
Hi,
wenn ich ehrlich bin, so ganz habe ich die Sache nicht verstanden. Versuch das doch nochmal es was einfacher zu erklären, vielleicht an Hand eines Beispiels.
Warum kannst du die Memos nicht so ausdrucken wie sie sind?
Eine Alternative wäre der Druck über Word.
Du erzeugst über die COM-Schnittstelle aus den Notes-Daten ein Worddokument und druckst das dann. Das geht dann komplett im Backend und das Worddokument, braucht der User gar nicht zu Gesicht bekommen.
Axel
-
hiho,
also "normal" ausdrucken können wir die Memos nicht, da diese Textlisten enthalten als Ersatz für dynamische Tabellen. Für jeden Eintrag in dieser "dynamischen Tabelle" muss es einen Ausdruck geben.
3 Einträge => 3 Ausdrucke
Hintergrund ist - wie oben beschrieben - dass User mit einem Memo mehrere Akten (oder vergleichbares) anfordern, wir aber für jede Akte, die angefordert wird, einen Ausdruck brauchen. Liegt an der Arbeitsorganisation der Aktenvergabe.
Nun bin ich ja schon so weit, dass richtig ausgedruckt wird, nur scheint er in der Ansicht die markierten Dokumente zu cachen.
alle markieren => Aktion "drucken" => ausgewählte werden gedruckt
Aktion nochmal betätigen (keine markierten sichtbar) => die "vorher" ausgewählte werden nochmal gedruckt
Ist das so besser verständlich ???
Aber um mal auf die COM - Schnittstelle zurückzukommen: wie mach ich sowas ?
Bin auf den Gebiet noch mehr als "jungfräulich" ;D
Wär also für Tipps und Links und sonstiges dankbar.
Gruß Rene
-
Von Axel gibt es hier eine Klasse (http://www.free.dominoserver.de/computer/noteslibrary.nsf/d2d59a3d7fc73a2bc1256a6900638352/331dd66d2239a1b2c1256dc50038f49e!OpenDocument) für den Einsatz von Word über COM. Feine Sache, danke Axel
-
Hi,
ich arbeite mit Rene (Small) zusammen an dem Problem und habe noch eine Ergänzung.
Das Drucken werden wir ja nun irgendwie hinbekommen. Vielen Dank für die Hinweise.
Aber: nach dem Drucken sollen die markierten und gedruckten Dokumente aus der Ansicht verschwinden, u.a. damit sie nicht noch einmal gedruckt werden können. Wir verändern also ein dokumenteigenes Statusfeld (wird auf erledigt gesetzt) und sorgen über die Ansichtsformel dafür, dass diese erledigten Dokumente nicht mehr angezeigt werden. Allerdings ist die Markierung immer noch aktiv. Trotzdem die docs nicht mehr sichtbar sind, wird durch das Ausführen unserer Druckaktion die Doc-collection erneut gedruckt, obwohl wir die collection aus der aktualisierten View erneut definieren. (muss also irgendwie gecacht werden).
Kann man irgendwie mit LS-Mitteln die anwendergesetzte Markierung aufheben ? (Wie im Menüpunkt Bearbeiten - Auswahl aufheben)
Gruß Matthias
-
Das hat Tücken, wurde aber vor langer Zeit hier ausführlich beschrieben. Es geht über den Aufruf eines Formel-Agenten mit @Command( [EditDeselectAll] ) drin. Wenn Ihr danach in der Forumssuche sucht, solltet Ihr fündig werden.
-
... oder ab Notes 6.x im Script mit
Call notesUIView.DeselectAll
*/edit
Sorry habe gerade erst gesehen, dass Ihr Notes 5.x benutzt.
-
Ich meine, mit der Methode gibt es Einschränkungen (nebst dem, dass es sie erst ab Version 6 gibt) .... aber ich kann mich irren