DCMs beim Druck

Rolf Schmid

Neues Mitglied
Hallo zusammen,

ich habe folgende Kundenanforderung: Beim Drucken einer AB soll zusätzlich eine CSV-Datei mit Informationen aus dem Beleg erstellt werden. Das soll aber nur passieren, wenn der Beleg auch tatsächlich gedruckt wird. D.h. beim Infodruck und falls die Druckvorschau einfach wieder geschlossen wird, dann soll keine Datei erstellt werden. Die AB wird auch nicht neu gespeichert, sondern nur geöffnet und erneut gedruckt.
Ich habe aber keine DCM gefunden, die nach dem Klicken auf den Button "Drucken" in der Seitenvorschau gefeuert wird. Alle mir bekannten DCMs werden beim Erstellen der Seitenvorschau ausgeführt.
Hat jemand eine Idee, wo ich mich da mit meiner Programmierung einklinken könnte?

Gruß
Rolf Schmid
 
Moin Herr Schmid,

entscheidend ist eher wo die CSV-Datei hin soll. Als Anhang in die PDF oder in einen konfigurierten Pfad etc. ?
Alles andere kann über das Belegobjekt und die NamedParameter geprüft werden.
 
Hallo,
die soll im Filesystem gespeichert werden.
mein Problem ist, dass ich gar nicht weiß wo ich meine Programmierung einklinken soll. Die ganzen DCMs (ReportBeforePrintRequest, PrintVKPrepareBeleg, ...) werden ja schon beim Aufbau der Seitenvorschau ausgeführt. Ich bräuchte eine, die beim Klick auf den Button Drucken in der Seitenvorschau ausgelöst wird.
Gruß
Rolf Schmid
 
Für mich klingt das ganz stark nach einer Kombination von ReportBeforePrintRequest und ReportBeforeSaveToDMS.
 
die ReportBeforePrintRequest wird schon beim Erstellen der Seitenvorschau ausgelöst und die ReportBeforeSaveToDms wird bei mir gar nicht ausgelöst. Ich habe aber auch kein DMS.
 
In der ReportBeforePrintRequest den Parameter "$IsDMS" auf -1 setzen, dann sollte ReportBeforeSaveToDms auch gefeuert werden. Die ReportBeforeSaveToDms ist die einzige DCM, die in den ReportViewerView-Events aufgerufen wird und somit die Anforderung erfüllt. Sprich jedes Mal sobald der Beleg tatsächlich gedruckt, exportiert, gespeichert oder als Mail gesendet wurde.
 
Alternativ über einen "Druckfolgeprozess", den man über den AppDesigner in den Eigenschaften des Berichts zuordnen kann (siehe "Rezept 22" im "Sage 100 Developer Kochbuch")?!
 
Alternativ über einen "Druckfolgeprozess", den man über den AppDesigner in den Eigenschaften des Berichts zuordnen kann (siehe "Rezept 22" im "Sage 100 Developer Kochbuch")?!
tatsächlich gedruckt

Wenn das Speichern des PDF`s oder der Versand per Mail (PDF-Erzeugung) keine Erzeugung der CSV verursachen sollen, eignet sich die von @diakh vorgeschlagene Variante besser. Beim Druckfolgeprozess spart man sich das Prüfen der Report Erzeugungsart, weil dieser nur bei erfolgreichem Druck gefeuert wird. Man muss nur sämtliche Parameter in den Aufruf übergeben weil kein Zugriff mehr auf das Belegobjekt besteht, was eventuell mehr Arbeit bedeutet.
 
Man muss nur sämtliche Parameter in den Aufruf übergeben weil kein Zugriff mehr auf das Belegobjekt besteht, was eventuell mehr Arbeit bedeutet.

Eigentlich reicht für diese Anforderung die Übergabe der "BelID" als Parameter. Die benötigten Daten des gespeicherten Belegs könnten dann direkt aus der Datenbank abgefragt werden (inklusive Überprüfung der Belegart).
 
Eigentlich reicht für diese Anforderung die Übergabe der "BelID" als Parameter. Die benötigten Daten des gespeicherten Belegs könnten dann direkt aus der Datenbank abgefragt werden (inklusive Überprüfung der Belegart).
Korrekt, "sämtlichen Parameter" sollte für das BelegHandle und die Parameter für die Prüfung des Infodrucks stehen. Oder wird der Druckfolgeprozess beim Infodruck nicht ausgelöst @diakh ? Hatte den bis jetzt noch nicht in Verwendung.
 
Korrekt, "sämtlichen Parameter" sollte für das BelegHandle und die Parameter für die Prüfung des Infodrucks stehen. Oder wird der Druckfolgeprozess beim Infodruck nicht ausgelöst @diakh ? Hatte den bis jetzt noch nicht in Verwendung.

Bin mir nicht sicher, ob der Druckfolgeprozess auch beim Infodruck aufgerufen wird (habe ich auch noch nicht verwendet). Würde also auch den Parameter mit reingeben und auswerten.
 
Zurück
Oben