28/02/2024

2 thoughts on “Business Central Cloud renaming a PDF report using FileManagement.BLOBExport

  1. Hi Roberto, thank you for your article, it is very useful!

    We have to do the same but downloading more than one report (in our case we have invoices).
    We are doing the same as you in a proccesing only report, we write your code in the OnAfterGetRecord trigger in “Sales Invoice Header” dataitem. In the request page we set an interval of Document No. (f.e: 7033..7035) and when we do the process we only received the last document in the interval (7035).
    Could you help us?, Do you know what we could do to receive a pdf of each document?

    Thank you for your time.

    Alba Rey

  2. Hi Roberto,
    Thank you for this. I had a similar request from a client. From BC21 there is a event subscriber that allows you to change the Filename from base app Report Selection per report.

    In Code unit “Custom Layout Reporting” we can use the eventsubscriber “OnGenerateFileNameOnAfterAssignFileName” to change the File name. The Code will look something like this. In my case I wanted to change the customer Statement File Name.

    [EventSubscriber(ObjectType::Codeunit, Codeunit::”Custom Layout Reporting”, ‘OnGenerateFileNameOnAfterAssignFileName’, ”, true, true)]
    local procedure OnGenerateFileNameOnAfterAssignFileName(var FileName: Text; ReportID: Integer; Extension: Text; DataRecRef: RecordRef)
    var
    Customer: Record Customer;
    FileNameDate: Text[20];
    dotpdfPos: Integer;
    PreFileNameLbl: Label ‘Statement for %1 %2 %3’;
    Pos: Integer;
    LengthText: Integer;
    begin
    if ReportID = 1316 then begin
    Customer.Get(DataRecRef.RecordId);
    Pos := Text.StrPos(FileName, ‘as’);
    dotpdfPos := Text.StrPos(FileName, ‘.pdf’);
    FileNameDate := Text.CopyStr(FileName, Pos, dotpdfPos);
    FileName := StrSubstNo(PreFileNameLbl, Customer.”No.”, Customer.Name, FileNameDate);
    end;
    end;

    This Returns a Filename “Statement for as of .”

Comments are closed.