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

How to set up parent project in project accounting in ax 2012

create simple project and then go to the project hierarchy fast tab and there you must define sub-project ID format "-#" and then your sub-project will be enabled. For resource assigning in Project first you need to configure the HR module, in that you need to maintain the calendar for those employees and then you need to define the cost of that particular employee (for expense) and for Revenue you need to define the sales price of that particular employee. In the project accounting module you need to mention the calendar in scheduling fast tab and then you need to define WBS, in WBS activity you can be able to assign resources.

Sales order posting Error - Voucher do not balance as per date in axapta 2012

Problem - How to get rid of this error if its coming while doing the sales invoice . "The transactions on voucher V-00001 do not balance as per 4/11/2014. (accounting currency: -1111- reporting currency: -232) " .  Suggestions: 1.Exchange rate setup , number sequence of invoice voucher, currency rounding all are done correctly , but still this error exists 2.Define currency for each account..or go in currency setup and check currency and rounding up rules 3.Check with penny difference in GL 4.Check there is proper conversion exchange rate defined for reporting currencies. 5. Check Rounding of option of for primary and reporting currencies both. 6.Check all the posting accounts defined in Posting profiles 7.check COGS, Customer, issue, revenue accounts are mapped. 8.Check primary and reporting currency has proper exchange rates and rounding rules defined. 9.Try to increase the value in the penny difference and then post the sales invoice. 10. Make sure ...