Code-Beispiel für Formletter-Reports per PDF drucken?

18. Juli 2013 07:42

Hallo AX-Entwickler,

in AX2009 ging es problemlos, Formulare (Lieferscheine/Rechnungen) per Code in PDF-Files zu drucken.
Gemäß verfügbarer Beschreibungen über die Anwendung der SRSPrintDestinationSettings, müsste das eigentlich auch in AX2012 funktionieren.

Ich habe es über 2 Wege anhand des Lieferscheinnachdrucks probiert:
1. Direkter Menüaufruf mittels new MenuFunction()
2. Anwendung der Klasse SalesPackingSlipJournalPrint.

In beiden Fällen greifen die übergebenen Druckeinstellungen nicht. Die Ausgabe erfolgt immer am Bildschirm.
Hat Jemand einen Code-Tipp, wie sich die SRS-PrintSettings für Formulare per AX-Code in AX2012 übersteuern lassen.

zu 1: Auszug zum Beispiel unter Verwendung des MenuItems:

printSettings = new SRSPrintDestinationSettings(_salesFormLetter.printerSettingsFormletter(PrintSetupOriginalCopy::Original));

printSettings.fileFormat(SRSReportFileFormat::PDF);
printSettings.printMediumType(SRSPrintMediumType::File);
printSettings.fileName(filePath+fileName); //Irgendein Dateipfad+Dateiname.pdf

salesPackingSlipMenu = new MenuFunction(menuitemoutputstr(salesPackingSlipOriginal),MenuItemType::Output);
_salesFormLetter.usePrintManagement(false);
_salesFormLetter.updatePrinterSettingsFormLetter(printSettings.pack(),PrintSetupOriginalCopy::Original);

parameters.caller(_salesFormLetter);
parameters.record(_packingSlipJour);
salesPackingSlipMenu.run(parameters);


Viele Grüße
Ina

Re: Code-Beispiel für Formletter-Reports per PDF [Gelöst]

18. Juli 2013 20:07

Hallo Zusammen,

ich konnte das Problem durch Änderung der Klasse SrsPrintMgmtFormLetterController lösen.
Geholfen hat mir ein Blog-Eintrag von Ludovico Mattiuzzo.

Außerdem wird in AX2012 R2 der mitgegebene PDF-Pfad in der Klasse PrintMgmtReportRun durch einen neuen Pfad überschrieben.
Dadurch wird die Datei doppelt gedruckt. Das konnte ich durch eine Pfad-Gültigkeitsprüfung umgehen.

Grüße
Ina