---
id: object/page/9667
type: object
title: Page 9667 "Header/Footer Theme Assignment"
summary: Page 9667 "Header/Footer Theme Assignment" in Base Application (Microsoft.Foundation.Reporting). 1 public procedures. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: "29"
  last_changed: null
  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: 8d1c0ecb041730793ebd0073c9189036188187e65ab70de26e5f650ad9472874
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Foundation/Reporting/HeaderFooterThemeAssignment.Page.al
    title: src/Layers/W1/BaseApp/Foundation/Reporting/HeaderFooterThemeAssignment.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10134
    - change/bcapps/9453
object_type: page
object_id: 9667
name: Header/Footer Theme Assignment
caption: Set theme and header-footer
namespace: Microsoft.Foundation.Reporting
app: Base Application
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 4
  events: 0
  subscribers: 0
  controls: 5
  actions: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 0
  implements: 0
---

# Page 9667 "Header/Footer Theme Assignment"

> Page 9667 "Header/Footer Theme Assignment" in Base Application (Microsoft.Foundation.Reporting). 1 public procedures. Introduced in BC29, still in BC30.

Base Application · Microsoft.Foundation.Reporting · captioned "Set theme and header-footer" · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Foundation/Reporting/HeaderFooterThemeAssignment.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Set theme and header-footer |
| Extensible | false |
| SourceTable | Tenant Report Layout Cfg |
| PageType | StandardDialog |
| ApplicationArea | Basic, Suite |
| Permissions | tabledata "Tenant Report Layout Cfg" = RIMD |

## 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 |
|---|---|---|---|
| Content | Report ID | `Rec."Report ID"` | Specifies the report these defaults apply to, stored per company/tenant (not per user). Report 0 is the global default that applies to all reports. |
|  | Layout Name | `LayoutNameDisplay` | Specifies the body layout these defaults apply to, so different layouts of the same report can use different themes and header/footer parts. Empty applies to all layouts of the report. |
| CompanyOverrideGroup | Company override | `CompanyOverrideDisplay` | Specifies a company that sets its own theme and header/footer for this layout. That setting is more specific than the one on this page, so it keeps applying in that company. Change it on the Report defaults for theme and header-footer page. |
| Content | Header/Footer Part | `HeaderPartDisplay` | Specifies the header/footer part applied to this report's layouts. Leave empty for none. |
|  | Theme Part | `ThemePartDisplay` | Specifies the theme part applied to this report's layouts. Leave empty for none. |

## Procedures

- `SetLayout(NewReportID: Integer; NewLayoutName: Text)` (internal)

Plus 3 local procedures.

## Triggers

OnOpenPage, OnAfterGetCurrRecord, OnQueryClosePage

## 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 9665 "Composite Layout Lookup Helper"](../codeunit/9665.md) (9 calls: `DetectCompanyOverride → DecodeLayoutName`, `OnAfterGetCurrRecord → DecodeLayoutName`, `OnOpenPage → DecodeLayoutName`, …)
- [Codeunit 265 "Feature Key Management"](../codeunit/265.md) (1 call: `OnOpenPage → IsDocumentReportExperienceEnabled`)

## Recent changes

- 2026-08-21 [#10134 [Bug 646487] Composite layout: focus fix, body-layout gating, and setup UI](../../changes/bcapps/10134.md) (main, BC30, fix)
- 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: BC29-30
- Changed (declaration) in: none

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: "Header/Footer Theme Assignment")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
