aus Schaden wird man klug -- einmal falsch geklickt und ein 5.000-Seiten-Druckauftrag geht an einen Drucker als in die Spool - im schlimmsten Fälle von einem Remote-User, der nicht aufspringen und schnell agieren kann.
Frage: Gibt es einen zentralen Exit für alle Druckfunktionen, indem man hinterlegen könnte, dass jeder Anwender, der mehr als x Seiten drucken will, erst den Haken "in der Spool ablegen" aus- bzw, "Sofort drucken" einschalten muss? Der müsste ja grundsätzlich vor dem Druckdynpro aufgerufen werden und die Benutzer- und Programmdefaults überschreiben können. Zur Not reicht auch ein zusätzliches Popup, das man dem Anwender zeigt....
Ich glaub nicht, dass zum Zeitpunkt wo im Standard "Sofort drucken" bzw. "in der Spool ablegen" abgefragt werden, die tatsächliche Länge der Ausgabe bekannt ist. Zumal in einigen von den Druckdialog (vor allem bei Listausgabe) ja auch die Aufbereitung (Zeilen/Spalten) erst abgefragt wird.
Beim SapScript/Smartforms/AdobeForms-Druck wird überhaupt erst mit der Ausgabe begonnen, wenn der Drucker/das Druckverfahren bekannt ist.
Ich denke es wäre leichter "in der Spool ablegen" als Standard zu definieren und dannach anhand der Informationen im Spooler zu entscheiden ob der Ausdruck tatsächlich stattfinden soll. Evtl. mittels Hintergrundjob oder ähnlichem.
lg
ADT
EDIT: hmm... Da kommt mir doch wieder eine geniale kleine Idee... Eine (zentrale) Klassenmethode die direkt nach dem Druck aufgerufen werden kann. Diese liest entweder anhand der Spoolnummer (wenn man im Programmlauf darauf Zugriff hat) oder anhand des Benutzernamens (in allen anderen Fällen) den/die zugehörigen Spoolaufträge aus. Ist die Seitenzahl nicht über einen gewissen Wert, wird der Ausdruck ausgelöst, ansonsten muss der Benutzer entscheiden was mit dem Druckauftrag passieren soll, ausdrucken oder löschen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.