PROCEDURE ReportSendMailWithExternalAttachment(
ReportToSend: Integer;
Recordr: RecordRef;
TableID: Integer;
DocNo: Text;
ToAddr: List of [Text];
Subject: Text[100];
Body: Text[200];
AttachmentName: Text[100];
Param: Text; var Purchaseheader: Record "Purchase Header"): Boolean
var
TempBlob: Codeunit "Temp Blob";
outStreamReport: OutStream;
inStreamReport: InStream;
TempBlobAtc: Array[10] of Codeunit "Temp Blob";
outStreamReportAtc: Array[10] of OutStream;
inStreamReportAtc: Array[10] of InStream;
Parameters: Text;
EmailObj: Codeunit Email;
EmailMsg: Codeunit "Email Message";
Question: Label 'Are you Sure you want to send an email to %1';
SendYesNo: Boolean;
// Attachments
FullFileName: Text;
DocumentAttachment: record "Document Attachment";
i: Integer;
begin
EmailMsg.Create(ToAddr, Subject, Body, false);
//Generate blob from report
TempBlob.CreateOutStream(outStreamReport);
TempBlob.CreateInStream(inStreamReport);
Report.SaveAs(ReportToSend, Param, ReportFormat::Pdf, outStreamReport, Recordr);
// Mail.AddAttachmentStream(inStreamReport, AttachmentName);
i := 1;
//Get attachment from the document - streams
DocumentAttachment.Reset();
DocumentAttachment.setrange("Table ID", TableID);
DocumentAttachment.setrange("No.", DocNo);
if DocumentAttachment.FindSet() then begin
repeat
if DocumentAttachment."Document Reference ID".HasValue then begin
TempBlobAtc[i].CreateOutStream(outStreamReportAtc[i]);
TempBlobAtc[i].CreateInStream(inStreamReportAtc[i]);
FullFileName := DocumentAttachment."File Name" + '.' + DocumentAttachment."File Extension";
if DocumentAttachment."Document Reference ID".ExportStream(outStreamReportAtc[i]) then begin
//Mail Attachments
EmailMsg.AddAttachment(FullFileName, 'PDF,', inStreamReportAtc[i]);
end;
i += 1;
end;
until DocumentAttachment.NEXT = 0;
end;
//Send mail
exit(EmailObj.Send(EmailMsg));