Skip to main content

X++ Code to run SSRS Report with parameter in D365 F&O (Example Sales Invoice )

Below is sample X++ Code to run SSRS Report with parameter in D365 F&O (Example Sales Invoice ) 


    Args                       args = new Args();

    CustInvoiceJour            custInvoiceJour;

    SalesInvoiceJournalPrint   salesInvoiceJournalPrint;

 

    select firstonly custInvoiceJour where custInvoiceJour.SalesId != '';

 

    // Add record to be printed.

    // In order to have the context table we need to set args.record().

    args.record(custInvoiceJour);

 

    salesInvoiceController = new SalesInvoiceController();

    salesInvoiceController.parmReportName(

        PrintMgmtDocType::construct(PrintMgmtDocumentType::SalesOrderInvoice).getDefaultReportFormat());

 

    salesInvoiceContract = salesInvoiceController.parmReportContract().parmRdpContract();

    salesInvoiceContract.parmCountryRegionISOCode(SysCountryRegionCode::countryInfo());

    salesInvoiceController.parmArgs(args);

    salesInvoiceController.parmExecutionMode(SysOperationExecutionMode::Synchronous);

 

    // Set print destinations.

    SRSPrintDestinationSettings pds = salesInvoiceController.parmReportContract().parmPrintSettings();

    pds.printMediumType(SRSPrintMediumType::File_DC);

    pds.parmFilePrintDestSettings_DC().parmOutputFilename('SalesInvoice_@FIELD_InvoiceId@.xlsx');

    pds.parmFilePrintDestSettings_DC().parmOutputFileFormatSrs(SRSReportFileFormat::Excel);

 

    

 

    // Use the original SSRS design.

    pds.parmFilePrintDestSettings_DC().parmUseSsrsBuiltInDesign(true);

    pds.parmSrsPrintReportSettings_DC().setProperty_PrintSrsOriginalDesign(true);

 

    /* Use the default Docentric design */

    pds.parmSrsPrintReportSettings_DC().setProperty_PrintSrsOriginalDesign(false);

    pds.parmFilePrintDestSettings_DC().parmUseSsrsBuiltInDesign(false);

    pds.parmFilePrintDestSettings_DC().parmOutputFilename('SalesInvoice_@FIELD_InvoiceId@.pdf');

    pds.parmFilePrintDestSettings_DC().parmOutputFileFormat(DocOutputFileFormat::PDF);

    

    

    // Initalize SalesInvoiceJournalPrint class instance because there is no other way

    // NOT to use Print Management.

    salesInvoiceJournalPrint = SalesInvoiceJournalPrint::construct();

    salesInvoiceJournalPrint.parmPrintFormletter(NoYes::Yes);

    salesInvoiceJournalPrint.parmUsePrintManagement(false);

    salesInvoiceJournalPrint.parmUseUserDefinedDestinations(true);

    salesInvoiceJournalPrint.parmPrinterSettingsFormLetter(salesInvoiceController.parmReportContract().parmPrintSettings().pack());

 

    args.caller(salesInvoiceJournalPrint);

    args.parmEnumType(enumNum(PrintCopyOriginal));

    args.parmEnum(PrintCopyOriginal::OriginalPrint);

 

    // Start the report execution.

    salesInvoiceController.parmShowDialog(false);

    salesInvoiceController.startOperation();

Popular posts from this blog

sales order Totals option getting error in Axapta

Problem: On  click sales order Totals option getting below error. Please help me how to solve it. Microsoft.Dynamics.Ax.Xpp.ClrErrorException: Exception of type 'Microsoft.Dynamics.Ax.Xpp.ClrErrorException' was thrown. at Microsoft.Dynamics.Ax.Xpp.CLRInterop.MakeReflectionCall(Object instance, String methodName, Object[] parameters) at Dynamics.Ax.Application.TaxDocumentProxy.Sumbytaxaccountingprovider(TaxAccountingProvider taxAccountingProvider, TaxAcctPostingProfDistributionSide postingSide, String taxType, String taxComponent, Boolean , Boolean , Boolean ) in TaxDocumentProxy.sumByTaxAccountingProvider.xpp:line 15 at Dynamics.Ax.Application.TaxDocumentProxy.@Sumbytaxaccountingprovider(TaxAccountingProvider taxAccountingProvider, TaxAcctPostingProfDistributionSide postingSide, String _taxType, Boolean , Boolean ) at Dynamics.Ax.Application.TaxDocumentProxy.@Sumbytaxaccountingprovider(TaxAccountingProvider taxAccountingProvider, TaxAcctPostingProfDistributionSide postingSide, ...