Showing posts with label Saving morphx report in PDF format. Show all posts
Showing posts with label Saving morphx report in PDF format. Show all posts

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();


}