Skip to main content

Notifications

Announcements

No record found.

Finance | Project Operations, Human Resources, ...
Unanswered

Automatic Proforma Invoice

Posted on by 5

Hello all,

I have an issue which I was trying to solve on saveral ways but unfortunetly nothing works.

Objective here is to export pro forma invoice to pdf file from code (not to use a standard printing process).  Let's say that I want to create a button to make such export.

I tried to use is code which seems to work but nothing happen:

    SalesTable salesTable;
    PrintJobSettings printJobSettings;
    SalesFormLetter formLetter;

    select firstOnly salesTable
        where salesTable.SalesId == 'YOUR_SALES_ID';

    formLetter = SalesFormLetter::construct(DocumentStatus::Invoice);

    printJobSettings = new PrintJobSettings(formLetter.printerSettingsFormletter());
    printJobSettings.setTarget(PrintMedium::File);
    printJobSettings.format(PrintFormat::PDF);
    printJobSettings.fileName(@'C:\Temp\proforma_invoice.pdf');

    formLetter = SalesFormLetter::construct(DocumentStatus::Invoice);
    formLetter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());

    formLetter.update(salesTable,
                        systemDateGet(),
                        SalesUpdate::All,
                        AccountOrder::None,
                        NoYes::Yes,
                        NoYes::Yes);

Version: AX 2012 R3

Please help!

  • dklimke Profile Picture
    dklimke 20 on at
    RE: Automatic Proforma Invoice

    Hi,

    i store the pdf to the print archive and then get the pdf as binary buffer or bin container from the docuref.

        public FormLetterToPrintArchiveResponse saveInvoiceFormLetterToPrintArchive(SalesId _salesId, SalesUpdate _specQty, boolean _proforma)
        {
            FormLetterToPrintArchiveResponse   		ret             = new FormLetterToPrintArchiveResponse();
            SalesFormLetter                         salesFormLetter =  SalesFormLetter::construct(DocumentStatus::Invoice);
            SalesParmLine                           parmLine;
            SalesLine                               salesline;
            SalesTable                              localSalesTable;
            SRSPrintDestinationSettings             printerSettings = new SRSPrintDestinationSettings();
    
            guid uid = newGuid();
            str fn_noext = guid2Str(uid);
            Filename fn = strFmt("%1.pdf", fn_noext);
    
            localSalesTable = SalesTable::find(_salesId);
    
            SRSPrintArchiveContract ac = new SRSPrintArchiveContract(SRSReportFileFormat::PDF);
            printerSettings.parmSRSPrintArchiveContract(ac);
            printerSettings.printMediumType(SRSPrintMediumType::Archive);
            printerSettings.fileFormat(SRSReportFileFormat::PDF);
            printerSettings.overwriteFile(true);
            printerSettings.fileName(fn);
            salesFormLetter.updatePrinterSettingsFormLetter(printerSettings.pack());
            
            salesFormLetter.update(localSalesTable, systemDateGet(), _specQty, AccountOrder::None, _proforma, true, false); 
    
            DocuRef docuRef;
    
            select firstonly docuRef
                where   docuRef.RefTableId == tableNum(PrintJobHeader)
                &&      docuRef.Name == fn_noext
                &&      docuRef.ActualCompanyId == curExt();
    
            ret.parmDocuRef(docuRef);
            ret.parmFileName(fn);
            ret.parmFileNameWithoutExtension(fn_noext);
            ret.parmPrinJobHeaderRecId(docuRef.RefRecId);
    
            return ret;
        }

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Suggested Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,253 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,188 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Product updates

Dynamics 365 release plans