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