Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Unanswered

Automatic Proforma Invoice

(0) ShareShare
ReportReport
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
    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

Understanding Microsoft Agents - Introductory Session

Confused about how agents work across the Microsoft ecosystem? Register today!

Jonas ”Jones” Melgaard – Community Spotlight

We are honored to recognize Jonas "Jones" Melgaard as our April 2025…

Kudos to the March Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 294,430 Super User 2025 Season 1

#2
Martin Dráb Profile Picture

Martin Dráb 233,043 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,158 Moderator

Leaderboard

Product updates

Dynamics 365 release plans