Friday, 22 April 2016

Saving AX 2009 Morphx Report in PDF Format:


static void PrinttoPDF(Args _args)
{
  PurchFormLetter purchFormLetterp;
  PrintJobSettings printJobSettings;
  VendInvoiceJour  vendInvoiceJour;
  PrintFormat PrintFormat;
  Args args = new Args();
  #File

    purchFormLetterp = PurchFormLetter::construct(DocumentStatus::Invoice,false);
    printJobSettings = new PrintJobSettings();
    printJobSettings.setTarget(Printmedium::File);
    //printJobSettings.getPrinter();
   // printJobSettings.deviceName("");
   // printJobSettings.unpackPrinterSettings(PurchFormLetter::getPrinterSettingsFormletter(DocumentStatus::Invoice,PrintSetupOriginalCopy::Original));
   // printJobSettings.preferredTarget(PrintMedium::Printer);
    printJobSettings.format(PrintFormat::PDF);
    printJobSettings.fileName( @'c:\TEMP\myfile2.pdf');
    printJobSettings.warnIfFileExists(false);

    purchFormLetterp.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());

    select vendInvoiceJour where vendInvoiceJour.Purchid == 'PO/15-16/00443';
    vendInvoiceJour.printJournal(purchFormLetterp);
   // args.record(vendInvoiceJour);
  //  args.caller(purchFormLetterp);

  // new MenuFunction(menuitemoutputstr(Purchinvoicecopy), MenuItemType::Output).run(args);


}

Code to get the printout directly from a morphx report 2009:

//directly to printer
static void ReporttoPrint(Args _args)
{
    Args                args;
    ReportRun           rr;
    Report              rb;
    PrintJobSettings    pjs;
    VendInvoicejour     record;
    ;

    select record where record.Purchid == 'PO/15-16/00421';

    args = new Args("Purchinvoice");
    args.record(record);
    args.parmEnum(PrintCopyOriginal::OriginalPrint);

    rr = new ReportRun(args,'');
    rr.suppressReportIsEmptyMessage(true);
    rr.query().interactive(false);

    rb = rr.report();
    rb.interactive(true);

    pjs = rr.printJobSettings();
    pjs.fileName(strfmt(@'c:\TEMP\myfile2.pdf', record.purchid));
    pjs.fitToPage(true);

    pjs.virtualPageHeight(-1);
    pjs.format(PrintFormat::PDF);
    pjs.deviceName('Canon iR2220/iR3320 PCL5e');
    pjs.setTarget(PrintMedium::Printer);
    pjs.viewerType(ReportOutputUserType::PDF);
    pjs.lockDestinationProperties(true);
    rr.prompt();
    rr.init();
    rr.run();


}

No comments:

Post a Comment