SrsReportRunController controller = new SrsReportRunController();
PurchPurchaseOrderContract Contract = new PurchPurchaseOrderContract();
SRSPrintDestinationSettings printSettings;
VendPurchOrderJour orderJour;
SrsReportEMailDataContract emailContract = new SrsReportEMailDataContract();
select firstonly orderJour
order by PurchOrderDate Desc,CreatedDateTime Desc
where orderJour.PurchId == "ST000181";
emailContract.parmAttachmentFileFormat(SRSReportFileFormat::PDF);
emailContract.parmSubject("Purchase Order");
emailContract.parmTo("test@hotmail.com");
controller.parmReportName(ssrsReportStr(PurchPurchaseOrder, Report));
controller.parmShowDialog(false);
Contract.parmRecordId(orderJour.RecId);
controller.parmReportContract().parmRdpContract(Contract);
printSettings = controller.parmReportContract().parmPrintSettings();
printSettings.printMediumType(SRSPrintMediumType::Email);
printSettings.fileFormat(SRSReportFileFormat::PDF);
printSettings.parmEMailContract(emailContract);
printSettings.overwriteFile(true);
controller.runReport();
There is a disadvantage of method at upper; AX will use Outlook for send email. Alternate is below has another disadvantage; it will generate a .PDF file at disk.:
PurchTable purchTable;
str body;
PurchLine purchLine;
boolean found;
VendPurchOrderJour orderJour;
Filename filename;
SysMailer mailer;
SysEmailParameters parameters;
SrsReportRunController controller = new SrsReportRunController();
PurchPurchaseOrderContract contract = new PurchPurchaseOrderContract();
SRSPrintDestinationSettings printSettings;
controller.parmReportName(ssrsReportStr(PurchPurchaseOrder,Report));
controller.parmExecutionMode(SysOperationExecutionMode::Synchronous);
printSettings = controller.parmReportContract().parmPrintSettings();
printSettings.fileFormat(SRSReportFileFormat::PDF);
printSettings.printMediumType(SRSPrintMediumType::File);
printSettings.overwriteFile(true);
printSettings.fileName(@filename);
printSettings.fileFormat(SRSReportFileFormat::PDF);
printSettings.printMediumType(SRSPrintMediumType::File);
printSettings.overwriteFile(true);
printSettings.fileName(@filename);
filename = strFmt(@"%1%2.PDF",WinAPI::getTempPath(),"PO00001");
select firstonly orderJour
order by PurchOrderDate Desc,CreatedDateTime Desc
where orderJour.PurchId == "PO00001"
contract.parmRecordId(orderJour.RecId);
controller.parmReportContract().parmRdpContract(contract);
controller.parmShowDialog(false);
controller.runReport();
infolog.clear();
new InteropPermission(InteropKind::ComInterop).assert();
mailer = new SysMailer();
parameters = SysEmailParameters::find();
if (parameters.SMTPRelayServerName)
{
mailer.SMTPRelayServer(parameters.SMTPRelayServerName,
parameters.SMTPPortNumber,
parameters.SMTPUserName,
SysEmailParameters::password(),
parameters.NTLM);
}
else
{
mailer.SMTPRelayServer(parameters.SMTPServerIPAddress,
parameters.SMTPPortNumber,
parameters.SMTPUserName,
SysEmailParameters::password(),
parameters.NTLM);
}
body = strFmt(@"<br><caption>%1</caption><br><br>","Purchase order form is appended.");
mailer.fromAddress("sender@hotmail.com");
mailer.tos().appendAddress("test@hotmail.com");
mailer.htmlBody(body);
mailer.subject(title);
mailer.attachments().add(filename);
mailer.sendMail();