community postReporting & Analyticscommunity - not Microsoftreviewed - checked by Opus

Composite Layouts in Business Central 29.0: Brand One Report End to End

Business Central 29.0 enables composite layouts where branding is split into three separate parts (header/footer, theme, and body) that merge at render time instead of baking everything into one Word document. The post walks through a complete example of branding the Standard Sales Invoice report for Contoso, covering setup in both the UI and AL code.

post Mohana's Dynamics NAV & BC blog

Mohana Yadav · 2026-10-05 · 1,637 words · about 7 min

Key points

  • Composite layouts split a document into a Body layout plus a reusable header/footer part and a theme part, merged when the report runs
  • Theme and header/footer parts must be approved before they can be assigned, and only Body subtype layouts accept them; Default and RDLC layouts do not
  • Defaults for theme and header/footer can be set at global, company, report and layout level, with the most specific winning, which makes multi-company branding easy
  • In AL, the Subtype, HeaderFooterPart and ThemePart properties configure this; theme files must be .dotx while body and header/footer files are .docx
  • A shared company information dataitem in Word layouts in 29.0 lets one header/footer part work across many reports

AL objects mentioned

As named in the post. A name that matches one object page by exact type and name links to it; the others stay as named.

  • report 1306 “Standard Sales - Invoice”
  • other “Manage themes and header-footer layouts”
  • other “Report Layouts”
  • other “Report themes and header-footer setup”
  • other “Report defaults for themes and header-footer setup”

Context

  • Features: Composite layouts, Report themes, Header/footer parts, Theme merging, Approval workflow, Layout defaults cascading, Multi-company branding, Shared company information dataitem
  • Versions: 29.0

Source: Mohana’s Dynamics NAV & BC blog, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.