Skip to main content
Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Unanswered

Use 1 Report to display multipple layouts

(0) ShareShare
ReportReport
Posted on by 5

Hi! 

I wrote Report extension for my "Standard Sales - Order Conf." Report.

Now, i want to use this report dataset to display its data in multiple report layouts.

For this cause, im using "rendering" section to add different layouts:

[In Report Extention]

rendering
    {
        layout("My Sales Order Confirmation")
        {
            Type = RDLC;
            LayoutFile = 'My Sales Order Confirmation.rdl';
        }
        layout("My Sales Order Confirmation Email Text")
        {
            Type = Word;
            LayoutFile = 'My Sales Order Confirmation Email Text.docx';
        }

        layout("My Sales Draft Invoice")
        {
            Type = RDLC;
            LayoutFile = 'My Sales Draft Invoice (for Sales Order).rdl';
        }
    }

No i can open my "Sales Order" record on list page and press "Print Confirmation...", where i would be able to select layout. That works.

Now, i want to create another button, so i could open a report right with needed layout, which should be for instance "My Sales Draft Invoice" (from code above). And this is where struggle begins.

I created a page extension and added a button, but i cant set filter on which layout to display. Can you help me with this? 

One method i found is to manually upload layout to "Custom Report Layouts" and write this code on the button:

pageextension 50350 SalesOrderListReportExt extends "Sales Order List"
{
    actions
    {
        addfirst(reporting)
        {
            action(DraftInvoice)
            {
                Caption = 'Draft Invoice';
                ApplicationArea = All;

                trigger OnAction()
                var
                    ReportLayoutSelection: Record "Report Layout Selection";
                    Layout: Record "Custom Report Layout";
                    DraftInvoiceLayoutCode: Code[40];
                    SalesHeader: Record "Sales Header";
                begin
                    SalesHeader.Reset();
                    CurrPage.SetSelectionFilter(SalesHeader);

                    DraftInvoiceLayoutCode := '1305-000008';
                    ReportLayoutSelection.SetTempLayoutSelected(DraftInvoiceLayoutCode);
                    Report.Run(Report::"Standard Sales - Order Conf.", true, true, SalesHeader);
                end;
            }
        }
        addfirst(Category_Category8)
        {
            actionref(DraftInvoice_Promoted; DraftInvoice)
            {
            }
        }
    }
}

 

The problem here is, that if i want to change my layout, i would need to manually upload it back to BC instead of letting VSCode handle it. Do you have a solution for me?

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

News and Announcements

Now Available: 2025 Release Wave 2

Quick Links

Ramesh Kumar – Community Spotlight

We are honored to recognize Ramesh Kumar as our July 2025 Community…

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Announcing the Engage with the Community forum!

This forum is your space to connect, share, and grow!

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
Sohail Ahmed Profile Picture

Sohail Ahmed 2,655

#2
Mansi Soni Profile Picture

Mansi Soni 1,574

#3
YUN ZHU Profile Picture

YUN ZHU 1,453 Super User 2025 Season 1

Featured topics

Product updates

Dynamics 365 release plans