Convert PDF Report into Base65str in d365 fo x++

     public Notes runReportandGenerateBase64()

    {

        PaymentReceiptController      controller = this;

        SRSPrintDestinationSettings     settings;

        Notes                           reportDataInBase64;

        Array                           arrayFiles;

        SRSProxy                        srsProxy;

        Map                             reportParametersMap;

        BinData bindataLoc = new BinData();

        System.Byte[]                   reportBytes = new System.Byte[0]();

        SRSReportRunService             srsReportRunService = new SrsReportRunService();

        SRSReportExecutionInfo          executionInfo = new SRSReportExecutionInfo();

        Microsoft.Dynamics.AX.Framework.Reporting.Shared.ReportingService.ParameterValue[] parameterValueArray;

        Filename    fileName  =  "PaymentReceiptreport" + '.pdf';

  



            Controller.parmArgs(new Args());

            controller.parmShowDialog(false);

            controller.parmLoadFromSysLastValue(false);

            //controller.preRunModifyContract();

            controller.RunPrePromptModilfyContract();


            settings = controller.parmReportContract().parmPrintSettings();

            settings.printMediumType(SRSPrintMediumType::File);

            settings.fileName(fileName);

            settings.fileFormat(SRSReportFileFormat::PDF);

            settings.overwriteFile(true);


            controller.parmReportContract().parmReportServerConfig(SRSConfiguration::getDefaultServerConfiguration());

            controller.parmReportContract().parmReportExecutionInfo(executionInfo);

            srsReportRunService.getReportDataContract(controller.parmreportcontract().parmReportName());

            srsReportRunService.preRunReport(controller.parmreportcontract());

            reportParametersMap = srsReportRunService.createParamMapFromContract(controller.parmReportContract());

            parameterValueArray = SrsReportRunUtil::getParameterValueArray(reportParametersMap);

         srsProxy = SRSProxy::constructWithConfiguration(controller.parmReportContract().parmReportServerConfig());

 

        reportBytes = srsproxy.renderReportToByteArray(controller.parmreportcontract().parmreportpath(),

                                            parameterValueArray,

                                            settings.fileFormat(),

                                            settings.deviceinfo());

 

        if (reportBytes)

        {

            using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(reportBytes))

            {

                 reportDataInBase64 = System.Convert::ToBase64String(memoryStream.ToArray());

            }

        }

        return  reportDataInBase64;

    }


Comments

Popular posts from this blog

Get Current Worker data in d365 fo x++

Table Level Event Handler in d365 fo x++