How-toMicrosoft Dynamics 365 Business CentralReporting / report layouts

Creating and selecting custom report layouts in Business Central

Question
how to create custom report layout in Business Central

Also searched as

  • Business Central Word layout vs RDLC layout
  • how to change report layout Business Central
  • Business Central custom report layout upload

Short answer

Business Central reports can render through a Word layout (simple, single-level documents like invoices) or an RDLC layout (complex, multi-level, grouped reports). Custom layouts are uploaded and assigned per report through the Report Layout Selection page, or shipped inside an AL extension with the rendering(...) property.

Applies to: Dynamics 365 Business Central (SaaS and on-premises), current and recent versions.

Create and apply a custom report layout

  1. 1Open the report you want to customize (e.g. Sales Invoice) and use Report Layouts or the report's Layouts action to export the built-in layout as a starting point (Word .docx or RDLC .rdl file).
  2. 2For a Word layout, edit the exported .docx in Microsoft Word using its built-in XML mapping controls to reposition fields, add branding, or adjust text; Word layouts are limited to the data structure already exposed by the report's dataset.
  3. 3For an RDLC layout, edit the .rdl file in a report designer tool (Visual Studio Report Designer or a compatible RDL editor) - RDLC supports grouping, subtotals, and multi-level datasets that Word layouts cannot express.
  4. 4Go to the Report Layout Selection page, find the report, and add a Custom layout entry, uploading your edited file and giving it a description.
  5. 5Set the new layout as the default for the relevant company/report combination, or leave multiple layouts available and let users pick one when running the report (e.g. per customer or per document type).
  6. 6For layouts shipped as part of an AL extension, use the rendering(LayoutName; LayoutType) property on the report object to bundle the layout file with the extension instead of relying on manual upload per environment.
  7. 7Test the layout by actually posting/printing a real document (not just Preview) since some data (e.g. dynamically calculated totals) only fully renders in the final run.

Choosing Word versus RDLC

Word layouts are the right default for simple, largely static documents - invoices, statements, quotes - where the business mainly wants to change branding, wording, or field placement without touching grouping logic. Business users comfortable in Word can often maintain these directly.

RDLC layouts are needed once the report requires nested grouping, running totals per group, conditional visibility of entire sections, or complex multi-table datasets - capabilities Word's simpler XML-mapping approach cannot express. Most standard multi-level financial and operational reports in Business Central ship as RDLC for this reason.

Report Layout Selection versus AL rendering property

The Report Layout Selection page is the operational, per-environment way to swap layouts without a code deployment - good for tenant-specific branding or minor field changes that a partner or power user manages directly in the running system.

The rendering(...) property inside an AL report object is the development-time way to ship a layout as part of an extension, so it deploys consistently across environments (dev, test, production) and travels with version control rather than being a manual per-tenant upload.

Common causes of a layout not rendering as expected

A field placed in a Word layout that does not exist in the report's underlying dataset will simply not populate - Word layouts cannot invent new data fields, only rearrange what the report dataset already provides; adding a genuinely new field requires an AL report extension to add it to the dataset first.

RDLC layouts that were edited against a different report version (a newer build added/removed dataset columns) can throw rendering errors or silently drop data - always re-export a fresh base layout from the current report version before customizing after an upgrade.

Common pitfalls

  • !Trying to add grouping or running totals to a Word layout - it is not supported; move to RDLC for that requirement instead.
  • !Editing an old exported layout file after the underlying report's dataset changed in an update, causing missing fields or rendering errors.
  • !Uploading a custom layout only through Report Layout Selection and not also packaging it in the extension, so it is lost or has to be manually re-uploaded on every new environment.
  • !Assuming Preview shows exactly what will print - some totals and page-break behavior only appear correctly in the final rendered output.
  • !Forgetting to set the new layout as default (or company-specific default), so users keep getting the original built-in layout despite the upload succeeding.

How an ERP-grounded AI assistant handles this

SyteRay-style development assistance (applied to Business Central AL projects) can scaffold a report extension's rendering(...) property and dataset additions from a plain description of the new field a business user wants on an invoice, cutting the usual back-and-forth between a functional request and the AL change needed to expose that data to the layout.

Frequently asked questions

Can I add a completely new field to a Word layout without any development?

No - Word layouts can only use fields already present in the report's dataset. A genuinely new field (one not already on the report) requires an AL report extension to add it to the dataset before it can appear in any layout.

Do custom layouts survive a Business Central update?

Layouts uploaded via Report Layout Selection generally persist through updates, but if the underlying report's dataset changes in a new version, an old layout can start showing errors or missing data and needs re-basing against the current report.

Can different customers see different invoice layouts automatically?

Yes - Report Layout Selection supports assigning different custom layouts by report and by usage context, and some reports support layout selection logic tied to customer or document attributes via extension code.

What tool do I need to edit an RDLC file?

Microsoft Visual Studio with the Report Designer component (or a compatible third-party RDL editor) is the standard tool; there is no built-in RDLC editor inside Business Central itself.

Related

How-to

Calling and extending the Business Central API v2.0

The Business Central API v2.0 is a REST/OData endpoint at api.businesscentral.dynamics.com/v2.0/{tenant}/{environment}/api/v2.0, authenticated with Azure AD OAuth 2.0. It exposes standard entities like customers and items, and lets you publish your own with an AL API page.

Error fix

Fixing "You do not have the following permissions on TableData (table): (permission)" in Business Central AL

This runtime error means the current user's assigned permission sets do not grant the required Insert, Modify, Delete, Read, or Execute right on that specific table. It is most common right after installing or updating a custom AL extension, because Business Central checks object-level permissions even for tables an extension owns.

Error fix

Fixing "Cannot create a record in (table). The record already exists" in D365 F&SCM data entity imports

This is the standard kernel duplicate-key exception, thrown when the Data Management Framework tries to insert a staging row into a target table whose unique or alternate key already matches an existing record. It almost always means the entity's insert-vs-update logic did not recognize the target row as an update, not that you have a true accidental duplicate in your source file.

Error fix

Fixing "There are currently no batch servers available for processing" in D365 F&SCM

This message means the batch framework cannot find any AOS instance flagged as a batch server and available for the batch group the job is assigned to. The fix is almost always in server configuration (System administration > Servers) or batch group assignment, not in the batch job itself.

Error fix

Fixing "The CIL object was not found" in Dynamics AX 2012

This error appears when the AOS tries to execute compiled CIL for a class or method that has not actually been regenerated since a code change was imported or edited, so the .NET runtime has nothing matching to run. The fix is a full compile followed by a full CIL generation and an AOS restart, not just a partial or incremental rebuild.

How-to

Handling OData 429 Too Many Requests throttling in D365 Finance and Operations

D365 F&SCM protects shared AOS capacity by throttling OData and custom service calls, returning HTTP 429 with a Retry-After header once a client sends too many requests too quickly. The durable fix is to honor Retry-After with backoff and redesign high-volume or frequent-polling integrations to use batching, business events, or Data management instead of tight request loops.

AI for ERP

AI for Dynamics 365 Business Central, on-premises or SaaS, beyond Copilot

AI for Business Central beyond Copilot: grounded question answering over BC's data via OData and APIs, for on-premises and SaaS tenants alike.

Stuck on Microsoft Dynamics 365 Business Central?

Talk to engineers who work inside Microsoft Dynamics 365 Business Central every week, and who build private AI that answers these questions from your own ERP data.