---
id: object/page/9660
type: object
title: Page 9660 "Report Layouts"
summary: Page 9660 "Report Layouts" in Base Application (Microsoft.Shared.Report). 1 public procedures. Introduced in BC25, still in BC30, changed in BC26-29.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: "25"
  last_changed: "29"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 9b2631be4f2d80daab522ee158d3ed717e4bae7487ccb2efc68d9777a2ef7753
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Foundation/Reporting/ReportLayouts.page.al
    title: src/Layers/W1/BaseApp/Foundation/Reporting/ReportLayouts.page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/ui-design-word-layouts-business-central-add-in
    title: Design Word Layouts with the Business Central Add-in
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/ui-get-started-layouts
    title: Get started creating report layouts
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/ui-manage-report-layouts
    title: Report and document layouts overview
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/ui-set-up-report-themes-header-footer-layouts
    title: Set Up Report Themes and Header/Footer Layouts
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/ui-design-word-layouts-business-central-add-in
    - https://learn.microsoft.com/dynamics365/business-central/ui-get-started-layouts
    - https://learn.microsoft.com/dynamics365/business-central/ui-manage-report-layouts
    - https://learn.microsoft.com/dynamics365/business-central/ui-set-up-report-themes-header-footer-layouts
  objects: []
  features: []
  topics:
    - topic/business-central/analytics-business-intelligence-and-repo/develop-reports/develop-report-layouts
    - topic/business-central/get-started/get-productive-in-business-central/change-the-look-of-externally-facing-doc
    - topic/business-central/integrate-with-other-applications/microsoft-office-apps-and-microsoft-365/microsoft-word
    - topic/dev-itpro/development/programming-in-the-al-language/developing-reports/report-layouts
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/11211
    - change/bcapps/10134
    - change/bcapps/9428
    - change/bcapps/9949
    - change/bcapps/9453
object_type: page
object_id: 9660
name: Report Layouts
namespace: Microsoft.Shared.Report
app: Base Application
extends: null
first_version: "25"
last_version: "30"
present_in:
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "26"
  - "27"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/ui-design-word-layouts-business-central-add-in.md
  - docs/learn-smb-docs/business-central/ui-get-started-layouts.md
  - docs/learn-smb-docs/business-central/ui-manage-report-layouts.md
  - docs/learn-smb-docs/business-central/ui-set-up-report-themes-header-footer-layouts.md
counts:
  fields: 0
  procedures: 5
  events: 0
  subscribers: 0
  controls: 18
  actions: 21
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 4
  called_by: 1
  implements: 0
---

# Page 9660 "Report Layouts"

> Page 9660 "Report Layouts" in Base Application (Microsoft.Shared.Report). 1 public procedures. Introduced in BC25, still in BC30, changed in BC26-29.

Base Application · Microsoft.Shared.Report · BC25-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Foundation/Reporting/ReportLayouts.page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Report Layouts |
| Extensible | true |
| SourceTable | Report Layout List |
| PageType | List |
| UsageCategory | Administration |
| ApplicationArea | Basic, Suite |
| Permissions | tabledata "Tenant Report Layout" = rd |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| Group | Report ID | `Rec."Report ID"` | Specifies the object ID of the report. |
|  | Report Name | `Rec."Report Name"` | Specifies the name of the report. |
|  | Layout Name | `Rec."Caption"` | Specifies the unique name of the layout. |
|  | Description | `Rec."Description"` | Specifies a description of the report layout. |
|  | Default | `IsDefaultLayout` | Specifies whether this is the default layout selected for the report. |
|  | Extension | `Rec."Layout Publisher"` | Specifies the name and publisher of the extension that the layout belongs to. If this field is empty, it means that layout is user-defined and does not belong to an extension. |
|  | Type | `Rec."Layout Format"` | Specifies the format of the report layout. |
|  | User Defined | `Rec."User Defined"` | Specifies whether the layout was created by a user. |
|  | Obsolete | `Rec.IsObsolete` | Specifies whether the layout is obsolete. |
|  | Layout Status | `Rec."Layout Status"` | Specifies the approval status of the layout. Only Approved layouts are available for selection on report request pages. |
|  | Subtype | `Rec."Layout Subtype"` | Specifies the role of the layout in the Composite Layout Merge: full body (Default), header/footer part, or theme part. |
|  | Excel Sheets | `Rec.ExcelLayoutMultipleDataSheets` | Specifies the Microsoft Excel sheet configuration override with respect to multiple data sheets (Default is defined by the report object). |
|  | Last Modified Date | `Rec.SystemModifiedAt` | Specifies the date and time when the layout was last modified. |
|  | Last Modified By | `SystemModifiedByDisplayName` | Specifies the user who last modified the layout. |
|  | Created Date | `Rec.SystemCreatedAt` | Specifies the date and time when the layout was created. |
|  | Created By | `SystemCreatedByDisplayName` | Specifies the user who created the layout. |
|  | Layout ID | `Rec."Layout".MediaId` | Specifies the unique ID of the layout. |
| FactBoxes | Details | part [Page 9669 "Report Layout FactBox"](../page/9669.md) | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Processing | New | Create a new layout. |  |
|  | Edit info | Edit layout information. |  |
|  | Run report | Run the report using the selected layout. |  |
|  | Export layout | Export the selected layout file. |  |
|  | Update and export layout | Export the selected layout file using the current report dataset design. |  |
|  | Replace layout | Replace the existing layout file. |  |
|  | Export report schema | Export report schema as a Microsft Word Custom Xml document. |  |
|  | Set as default | Set the current layout as the default layout for the specified report. |  |
|  | Validate layout | Validate the report layout. |  |
|  | Show layout info | Show the report layout information. |  |
|  | Open in OneDrive | 'Copy the file to your Business Central folder in OneDrive and open it in a new window so you can manage or share the file.', Comment = 'OneDrive should not be translated' |  |
|  | Edit in OneDrive | 'Copy the file to your Business Central folder in OneDrive and open it in a new window so you can edit the file.', Comment = 'OneDrive should not be translated' |  |
|  | Share | 'Copy the file to your Business Central folder in OneDrive and share the file. You can also see who it''s already shared with.', Comment = 'OneDrive should not be translated' |  |
| Composite layout | Set report theme and header-footer | Set the theme and header/footer applied to the selected layout. Available for body layouts only: a theme and header/footer are merged onto a body layout when the report renders. The setting is stored per company/tenant for this layout, not per user. |  |
|  | Set all report theme and header-footer | Show every body layout of this report with the theme and header/footer that apply to each, and change them per layout. Inherited company and global defaults are shown with their source. |  |
|  | Set report global default | Set the theme and header/footer that apply when a layout has none of its own. The row with report ID 0 is the global default for every report; a row for this report covers all of its layouts. |  |
|  | Manage themes and header-footer layouts | Open the list of themes and header/footer layouts to add, export, or delete them. The list is shared by every report, so it does not depend on the layout selected here. |  |
| Processing | Set as Approved | Mark the selected layouts as approved. Only approved layouts are available for selection on report request pages. |  |
|  | Set as Draft | Mark the selected layouts as draft. Draft layouts are not available for selection on report request pages. |  |
|  | Set as Pending Approval | Mark the selected layouts as pending approval. Pending layouts are not available for selection on report request pages. |  |
|  | Set as Retired | Mark the selected layouts as retired. Retired layouts are not available for selection on report request pages. |  |

## Procedures

- `SetIncludeUnapproved()` (internal)

Plus 4 local procedures.

## Triggers

OnOpenPage, OnDeleteRecord, OnAfterGetCurrRecord, OnAfterGetRecord

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 9660 "Report Layouts Impl."](../codeunit/9660.md) (5 calls: `OnAfterGetRecord → GetDefaultReportLayoutSelection`, `OnDeleteRecord → ConfirmDeleteDefaultLayoutSelection`, `OnDeleteRecord → DeleteReportLayout`, …)
- [Codeunit 9665 "Composite Layout Lookup Helper"](../codeunit/9665.md) (2 calls: `HasCompositePartReferences → EncodeCompositeName`, `OnDeleteRecord → ClearPartAssignments`)
- [Codeunit 265 "Feature Key Management"](../codeunit/265.md) (1 call: `OnOpenPage → IsDocumentReportExperienceEnabled`)
- [Codeunit 9560 "Document Sharing"](../codeunit/9560.md) (1 call: `OnAfterGetCurrRecord → ShareEnabled`)

## Called by

- [Codeunit 9660 "Report Layouts Impl."](../codeunit/9660.md) (2 calls: `SelectReportLayout → (object)`, `SelectReportLayoutUI → (object)`)

## Recent changes

- 2026-09-10 [#11211 [Bug 649379] Composite layout stress-test fixes, part resolution source and status action captions](../../changes/bcapps/11211.md) (main, BC30, fix)
- 2026-08-21 [#10134 [Bug 646487] Composite layout: focus fix, body-layout gating, and setup UI](../../changes/bcapps/10134.md) (main, BC30, fix)
- 2026-08-17 [#9428 637301 Report layout override lifecycle](../../changes/bcapps/9428.md) (main, BC30, feature)
- 2026-08-10 [#9949 [Bug 645022] UI improvements for report themes and header/footers (composite layout)](../../changes/bcapps/9949.md) (main, BC30, feature)
- 2026-07-15 [#9453 [Bug 642248] Header/Footer Theme Assignment: persist selected layout (missing Rec.Modify)](../../changes/bcapps/9453.md) (main, BC30, fix)

## Across versions

- Present in: BC25-30
- Changed (declaration) in: BC26-29

## Documented on Microsoft Learn

- [Design Word Layouts with the Business Central Add-in](https://learn.microsoft.com/dynamics365/business-central/ui-design-word-layouts-business-central-add-in)
- [Get started creating report layouts](https://learn.microsoft.com/dynamics365/business-central/ui-get-started-layouts)
- [Report and document layouts overview](https://learn.microsoft.com/dynamics365/business-central/ui-manage-report-layouts)
- [Set Up Report Themes and Header/Footer Layouts](https://learn.microsoft.com/dynamics365/business-central/ui-set-up-report-themes-header-footer-layouts)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "page", object_name: "Report Layouts")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
