---
id: object/page/113
type: object
title: Page 113 "Budget"
summary: Page 113 "Budget" in Base Application (Microsoft.Finance.Analysis). 16 public procedures, 9 events. Present since at least BC23, still in BC30, changed in BC25, BC29.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  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: 5ba62b6265d9e716685b45e9eeda4616ebb8343d45620401e486710ab857adb1
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/Analysis/Budget.Page.al
    title: src/Layers/W1/BaseApp/Finance/Analysis/Budget.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/finance-how-create-budgets
    title: Create G/L budgets
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-create-budgets
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/work-with-the-chart-of-accounts-and-gene
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: page
object_id: 113
name: Budget
namespace: Microsoft.Finance.Analysis
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "25"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/finance-how-create-budgets.md
counts:
  fields: 0
  procedures: 41
  events: 9
  subscribers: 0
  controls: 17
  actions: 14
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 1
  event_subscribers: 0
  calls: 5
  called_by: 0
  implements: 0
---

# Page 113 "Budget"

> Page 113 "Budget" in Base Application (Microsoft.Finance.Analysis). 16 public procedures, 9 events. Present since at least BC23, still in BC30, changed in BC25, BC29.

Base Application · Microsoft.Finance.Analysis · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/Analysis/Budget.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Budget |
| PageType | ListPlus |

## 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 |
|---|---|---|---|
| General | Budget Name | `BudgetName` | Specifies the name of the budget. |
|  | Show as Lines | `LineDimCode` | Specifies which values you want to show as lines in the window. This allows you to see the same matrix window from various perspectives, especially when you use both the Show as Lines field and the Show as Columns field. |
|  | Show as Columns | `ColumnDimCode` | Specifies which values you want to show as columns in the window. This allows you to see the same matrix window from various perspectives, especially when you use both the Show as Lines field and the Show as Columns field. |
|  | View by | `PeriodType` | Specifies by which period amounts are displayed. |
|  | Rounding Factor | `RoundingFactor` | Specifies the factor that is used to round the amounts. |
|  | Show Column Name | `ShowColumnName` | Specifies that the names of columns are shown in the matrix window. |
| Content | MatrixForm | part [Page 9203 "Budget Matrix"](../page/9203.md) | — |
| Filters | Date Filter | `DateFilter` | Specifies the dates that will be used to filter the amounts in the window. |
|  | G/L Account Filter | `GLAccFilter` | Specifies the G/L accounts for which you will see information in the window. |
|  | G/L Account Category Filter | `GLAccCategoryFilter` | Specifies the category of the G/L account for which you will see information in the window. |
|  | Income/Balance G/L Account Filter | `IncomeBalanceGLAccFilter` | Specifies the type of the G/L account for which you will see information in the window. |
|  | Global Dimension 1 Filter | `GlobalDim1Filter` | Specifies by which global dimension data is shown. Global dimensions are the dimensions that you analyze most frequently. Two global dimensions, typically for the company's most important activities, are available on all cards, documents, reports, and lists. |
|  | Global Dimension 2 Filter | `GlobalDim2Filter` | Specifies by which global dimension data is shown. Global dimensions are the dimensions that you analyze most frequently. Two global dimensions, typically for the company's most important activities, are available on all cards, documents, reports, and lists. |
|  | Budget Dimension 1 Filter | `BudgetDim1Filter` | Specifies a filter by a budget dimension. You can specify four additional dimensions on each budget that you create. |
|  | Budget Dimension 2 Filter | `BudgetDim2Filter` | Specifies a filter by a budget dimension. You can specify four additional dimensions on each budget that you create. |
|  | Budget Dimension 3 Filter | `BudgetDim3Filter` | Specifies a filter by a budget dimension. You can specify four additional dimensions on each budget that you create. |
|  | Budget Dimension 4 Filter | `BudgetDim4Filter` | Specifies a filter by a budget dimension. You can specify four additional dimensions on each budget that you create. |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Balance | G/L Account Balance Budget by period | Open a summary of the debit and credit balances for the current budget. |  |
| Functions | Copy Budget | Create a copy of the current budget based on a general ledger entry or a general ledger budget entry. |  |
|  | Delete Budget | Delete the current budget. |  |
|  | Export to Excel | Export all or part of the budget to Excel for further analysis. If you make changes in Excel, you can import the budget afterwards. |  |
|  | Import from Excel | Import a budget that you exported to Excel earlier. |  |
|  | Reverse Lines and Columns | Change the display of the matrix by inverting the values in the Show as Lines and Show as Columns fields. |  |
| Report | Trial Balance/Budget (Obsolete) <small>obsolete Pending 28.0; #if not CLEAN28</small> | View budget details for the specified period. |  |
|  | Budget | View budget details for the specified period. |  |
| Processing | Next Period | Show the information based on the next period. If you set the View by field to Day, the date filter changes to the day before. |  |
|  | Previous Period | Show the information based on the previous period. If you set the View by field to Day, the date filter changes to the day before. |  |
|  | Previous Set | Go to the previous set of data. |  |
|  | Previous Column | Go to the previous column. |  |
|  | Next Column | Go to the next column. |  |
|  | Next Set | Go to the next set of data. |  |

## Events published

- `OnAfterGenerateColumnCaptions(ColumnDimCode: Text[30]; StepType: Enum "Matrix Page Step Type"; var PrimKeyFirstCaptionInCu: Text; var CaptionSet: array[32] of Text[80]; var CaptionRange: Text; var CurrentNoOfColumns: Integer; var MatrixRecords: array[32] of Record "Dimension Code Buffer"; ShowColumnName: Boolean)` (integration): Integration event raised after generating column captions for budget matrix display. Enables customization of matrix column headers and caption formatting.
- `OnAfterDimCodeToType(DimCode: Text[30]; var Result: Enum "G/L Budget Matrix Dimensions")` (integration): Integration event raised after converting dimension code to matrix dimension type. Enables custom mapping of dimension codes to G/L Budget Matrix dimension types.
- `OnAfterValidateBudgetName(var GLAccBudgetBuf: Record "G/L Acc. Budget Buffer"; var GLBudgetName: Record "G/L Budget Name")` (integration): Integration event raised after validating budget name selection. Enables custom processing when budget name is changed or validated.
- `OnBeforeClearDimCodeOnChange(DimensionCode: Text[30]; var IsHandled: Boolean)` (integration): Integration event raised before clearing dimension code when dimension changes. Enables custom handling of dimension code clearing operations.
- `OnDeleteBudgetOnAfterGLBudgetEntrySetFilters(var GLBudgetEntry: Record "G/L Budget Entry")` (integration): Integration event raised after setting filters on G/L Budget Entry during budget deletion. Enables additional filtering logic for budget entry deletion operations.
- `OnGetDimSelectionOnBeforeDimSelectionLookup(var DimensionSelection: Page "Dimension Selection")` (integration): Integration event raised before opening dimension selection lookup page. Enables customization of dimension selection page before display.
- `OnOpenPageOnBeforeSetPeriodTypeMonth(var PeriodType: Enum "Analysis Period Type"; var IsHandled: Boolean)` (integration): Integration event raised before setting default period type to Month on page opening. Enables custom period type initialization logic.
- `OnOpenPageOnBeforeIncomeBalanceGLAccFilter(GLAccountIncomeBalanceFilter: Enum "G/L Account Income/Balance"; var IsHandled: Boolean)` (integration): Integration event raised before setting Income/Balance G/L Account filter on page opening. Enables custom account filtering logic during page initialization.
- `OnBeforeOnOpenPage()` (integration): Integration event raised before opening the budget page. Enables custom initialization logic before page display.

## Procedures

- `GenerateColumnCaptions(StepType: Enum "Matrix Page Step Type")` (protected)
- `FindPeriod(SearchText: Code[10])` (protected)
- `SetBudgetName(NextBudgetName: Code[10])`: Sets the budget name for the page to display and work with specific budget data. Initializes budget context for filtering and data operations.
- `GetBudgetName(): Code[10]`: Retrieves the currently active budget name for the page operations. Returns the budget name being used for data filtering and display.
- `SetGLAccountFilter(NewGLAccFilter: Text)`: Sets G/L account filter for budget data display and analysis operations. Applies account-based filtering to budget entries and updates page display.
- `SetGLAccountCategoryFilter(NewGLAccCategoryFilter: Enum "G/L Account Category")`: Sets G/L account category filter for focused budget analysis by account groupings. Filters budget data based on account category classifications.
- `SetIncomeBalanceGLAccFilter(NewIncomeBalanceGLAccFilter: Option)`: Sets income/balance filter for budget analysis focused on income statement or balance sheet accounts. Controls whether budget data displays income, balance, or both account types.
- `SetBudgetDimFilters(NewGlobalDim1Filter: Text; NewGlobalDim2Filter: Text; NewBudgetDim1Filter: Text; NewBudgetDim2Filter: Text; NewBudgetDim3Filter: Text; NewBudgetDim4Filter: Text)`: Sets dimension filters for budget analysis across global and budget-specific dimensions. Configures filtering for multi-dimensional budget data analysis and reporting.
- `UpdateMatrixSubform()` (protected)
- `GlobalDim2FilterOnAfterValidate()`: Validates and applies Global Dimension 2 filter for budget matrix display. Updates budget data view when Global Dimension 2 filter changes.
- `GlobalDim1FilterOnAfterValidate()`: Validates and applies Global Dimension 1 filter for budget matrix display. Updates budget data view when Global Dimension 1 filter changes.
- `BudgetDim2FilterOnAfterValidate()`: Validates and applies Budget Dimension 2 filter for budget matrix display. Updates budget data view when Budget Dimension 2 filter changes.
- `BudgetDim1FilterOnAfterValidate()`: Validates and applies Budget Dimension 1 filter for budget matrix display. Updates budget data view when Budget Dimension 1 filter changes.
- `BudgetDim4FilterOnAfterValidate()`: Validates and applies Budget Dimension 4 filter for budget matrix display. Updates budget data view when Budget Dimension 4 filter changes.
- `BudgetDim3FilterOnAfterValidate()`: Validates and applies Budget Dimension 3 filter for budget matrix display. Updates budget data view when Budget Dimension 3 filter changes.
- `ValidateDateFilter(NewDateFilter: Text[30])` (protected)

Plus 16 local procedures.

## Triggers

OnInit, OnOpenPage

## Extended by

- [Page extension 4433 "EXR Budget"](../pageextension/4433.md)

## 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 9200 "Matrix Management"](../codeunit/9200.md) (3 calls: `GenerateColumnCaptions → GenerateDimColumnCaption`, `GenerateColumnCaptions → GenerateMatrixData`, `GenerateColumnCaptions → GeneratePeriodMatrixData`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (1 call: `DeleteBudget → GetResponseOrDefault`)
- [Codeunit 362 "PeriodPageManagement"](../codeunit/362.md) (1 call: `FindPeriod → FindDate`)
- [Codeunit 41 "Filter Tokens"](../codeunit/41.md) (1 call: `ValidateDateFilter → MakeDateFilter`)
- [Codeunit 410 "Update Analysis View"](../codeunit/410.md) (1 call: `DeleteBudget → SetLastBudgetEntryNo`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC25, BC29

## Documented on Microsoft Learn

- [Create G/L budgets](https://learn.microsoft.com/dynamics365/business-central/finance-how-create-budgets)

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: "Budget")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
