generate report to send by email
Thu Sep 11 2025 16:50:44 GMT+0000 (Coordinated Universal Time)
Saved by @MinaTimo
class NW_PayslipGenerateReport { public static System.IO.Stream getPayslipReport(date _from, date _to, hcmWorkerRecid worker) { NWPY_PayslipReportContract contract = new NWPY_PayslipReportContract(); SRSPrintDestinationSettings settings; SrsReportEMailDataContract emailContract; System.IO.MemoryStream _strem; SysMailerMessageBuilder mailer = new SysMailerMessageBuilder(); SysMailerSMTP smtp = new SysMailerSMTP(); Filename filename; Array arrayfiles; System.Byte[] reportBytes = new System.Byte[0](); SRSProxy srsProxy; SrsReportRunService srsreportRunService = new SrsReportRunService(); Microsoft.Dynamics.AX.Framework.Reporting.Shared.ReportingService.ParameterValue[] parameterValueArray; Map reportParametersMap; SRSReportExecutionInfo executionInfo = new SRSReportExecutionInfo(); SrsReportRunController controller = new SrsReportRunController(); filename = 'Payslip.PDF'; contract.ParmFromDate(_from); contract.parmToDate(_to); contract.parmEmployee(worker); controller.parmReportName(ssrsReportStr(NWPY_PayslipReport, PrecisionDesign2)); controller.parmShowDialog(false); controller.parmReportContract().parmRdpContract(contract); settings = controller.parmReportContract().parmPrintSettings(); settings.printMediumType(SRSPrintMediumType::File); settings.fileFormat(SRSReportFileFormat::PDF); settings.overwriteFile(true); settings.fileName(filename); 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) { _strem = new System.IO.MemoryStream(reportBytes); } return _strem; } }
Comments