procedure BulkDownloadInvoice(var SalesInvoiceHeader: Record "Sales Invoice Header")
var
TempBlob: Codeunit "Temp Blob";
OutS: OutStream;
InS: InStream;
RecRef: RecordRef;
FldRef: FieldRef;
RecordCounter: Integer;
DataCompression: Codeunit "Data Compression";
FileManagement: Codeunit "File Management";
ZipFileName: Text;
PdfFileName: Text;
begin
ZipFileName := 'Sales Invoices_' + Format(CurrentDateTime) + '.zip';
DataCompression.CreateZipArchive();
if SalesInvoiceHeader.FindFirst() then begin
repeat
Commit();
TempBlob.CreateOutStream(OutS);
RecRef.GetTable(SalesInvoiceHeader);
FldRef := RecRef.Field(SalesInvoiceHeader.FieldNo("No."));
FldRef.SetRange(SalesInvoiceHeader."No.");
if RecRef.FindFirst() then begin
Report.SaveAs(Report::"Posted Sales Invoice", '', ReportFormat::Pdf, OutS, RecRef);
TempBlob.CreateInStream(InS);
PdfFileName := 'Invoice No:' + Format(SalesInvoiceHeader."No.") + ' - ' + Format(SalesInvoiceHeader."Sell-to Customer Name") + '.pdf';
DataCompression.AddEntry(InS, PdfFileName);
end;
Sleep(1000);
until SalesInvoiceHeader.Next() = 0;
TempBlob.CreateOutStream(OutS);
DataCompression.SaveZipArchive(OutS);
TempBlob.CreateInStream(InS);
DownloadFromStream(InS, '', '', '', ZipFileName);
end;
end;