Page 9660 "Report Layouts"
Base Application · Microsoft.Shared.Report
Across versions
- BC23-24not present
- BC25added
- BC261 procedures added
- BC27declaration changed
- BC281 procedures added
- BC292 procedures added
- BC30unchanged
Neighbourhood 8 connected objects and pages
Base Application · Microsoft.Shared.Report · BC25-30 · source at ea08af5e · 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” | — |
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()+ BC29 (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.” (5 calls:
OnAfterGetRecord → GetDefaultReportLayoutSelection,OnDeleteRecord → ConfirmDeleteDefaultLayoutSelection,OnDeleteRecord → DeleteReportLayout, …) - Codeunit 9665 “Composite Layout Lookup Helper” (2 calls:
HasCompositePartReferences → EncodeCompositeName,OnDeleteRecord → ClearPartAssignments) - Codeunit 265 “Feature Key Management” (1 call:
OnOpenPage → IsDocumentReportExperienceEnabled) - Codeunit 9560 “Document Sharing” (1 call:
OnAfterGetCurrRecord → ShareEnabled)
Called by
- Codeunit 9660 “Report Layouts Impl.” (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 (main, BC30, fix)
- 2026-08-21 #10134 [Bug 646487] Composite layout: focus fix, body-layout gating, and setup UI (main, BC30, fix)
- 2026-08-17 #9428 637301 Report layout override lifecycle (main, BC30, feature)
- 2026-08-10 #9949 [Bug 645022] UI improvements for report themes and header/footers (composite layout) (main, BC30, feature)
- 2026-07-15 #9453 [Bug 642248] Header/Footer Theme Assignment: persist selected layout (missing Rec.Modify) (main, BC30, fix)
Documented on Microsoft Learn
- Design Word Layouts with the Business Central Add-in
- Get started creating report layouts
- Report and document layouts overview
- Set Up Report Themes and 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.