---
id: object/page/9233
type: object
title: Page 9233 "G/L Balance by Dim. Matrix"
summary: Page 9233 "G/L Balance by Dim. Matrix" in Base Application (Microsoft.Finance.Analysis). 2 public procedures, 18 events. Present since at least BC23, still in BC30, changed in BC24, BC27.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  last_changed: "27"
  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: d396fd2e9d044259f6805620e1ac1e944f3a37c12117a30f1a71186d6139c93a
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/Analysis/GLBalancebyDimMatrix.Page.al
    title: src/Layers/W1/BaseApp/Finance/Analysis/GLBalancebyDimMatrix.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/finance-dimensions
    title: Work with dimensions to track and analyze data
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/finance-dimensions
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/working-with-dimensions
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: page
object_id: 9233
name: G/L Balance by Dim. Matrix
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:
  - "24"
  - "27"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/finance-dimensions.md
counts:
  fields: 0
  procedures: 46
  events: 18
  subscribers: 0
  controls: 35
  actions: 0
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 8
  called_by: 0
  implements: 0
---

# Page 9233 "G/L Balance by Dim. Matrix"

> Page 9233 "G/L Balance by Dim. Matrix" in Base Application (Microsoft.Finance.Analysis). 2 public procedures, 18 events. Present since at least BC23, still in BC30, changed in BC24, BC27.

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

## Properties

| Property | Value |
|---|---|
| Caption | G/L Balance by Dim. Matrix |
| SourceTable | Dimension Code Buffer |
| PageType | List |

## 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 |
|---|---|---|---|
| Control1 | Code | [Code](../table/367.md#fields) | Specifies the code of the record. <small>from the table field</small> |
|  | Name | [Name](../table/367.md#fields) | Specifies the name of the record. <small>from the table field</small> |
|  | Total Amount | [Amount](../table/367.md#fields) | Specifies the total value for the amount type that you select in the Show field. <small>from the table field</small> |
|  | Field1 | `MATRIX_CellData[1]` | — |
|  | Field2 | `MATRIX_CellData[2]` | — |
|  | Field3 | `MATRIX_CellData[3]` | — |
|  | Field4 | `MATRIX_CellData[4]` | — |
|  | Field5 | `MATRIX_CellData[5]` | — |
|  | Field6 | `MATRIX_CellData[6]` | — |
|  | Field7 | `MATRIX_CellData[7]` | — |
|  | Field8 | `MATRIX_CellData[8]` | — |
|  | Field9 | `MATRIX_CellData[9]` | — |
|  | Field10 | `MATRIX_CellData[10]` | — |
|  | Field11 | `MATRIX_CellData[11]` | — |
|  | Field12 | `MATRIX_CellData[12]` | — |
|  | Field13 | `MATRIX_CellData[13]` | — |
|  | Field14 | `MATRIX_CellData[14]` | — |
|  | Field15 | `MATRIX_CellData[15]` | — |
|  | Field16 | `MATRIX_CellData[16]` | — |
|  | Field17 | `MATRIX_CellData[17]` | — |
|  | Field18 | `MATRIX_CellData[18]` | — |
|  | Field19 | `MATRIX_CellData[19]` | — |
|  | Field20 | `MATRIX_CellData[20]` | — |
|  | Field21 | `MATRIX_CellData[21]` | — |
|  | Field22 | `MATRIX_CellData[22]` | — |
|  | Field23 | `MATRIX_CellData[23]` | — |
|  | Field24 | `MATRIX_CellData[24]` | — |
|  | Field25 | `MATRIX_CellData[25]` | — |
|  | Field26 | `MATRIX_CellData[26]` | — |
|  | Field27 | `MATRIX_CellData[27]` | — |
|  | Field28 | `MATRIX_CellData[28]` | — |
|  | Field29 | `MATRIX_CellData[29]` | — |
|  | Field30 | `MATRIX_CellData[30]` | — |
|  | Field31 | `MATRIX_CellData[31]` | — |
|  | Field32 | `MATRIX_CellData[32]` | — |

## Events published

- `OnAfterFindRec(DimOption: Option "G/L Account",Period,"Business Unit","Dimension 1","Dimension 2",Fund,"Dimension 3","Dimension 4","Dimension 5","Dimension 6","Dimension 7","Dimension 8"; var DimCodeBuf: Record "Dimension Code Buffer"; Which: Text; var Found: Boolean; AnalysisbyDimParameters: Record "Analysis by Dim. Parameters")` (integration): Integration event raised after finding record in dimensional navigation. Enables custom logic for record positioning and filtering in matrix navigation operations.
- `OnAfterNextRec(DimOption: Option "G/L Account",Period,"Business Unit","Dimension 1","Dimension 2",Fund,"Dimension 3","Dimension 4","Dimension 5","Dimension 6","Dimension 7","Dimension 8"; var DimCodeBuf: Record "Dimension Code Buffer"; Steps: Integer; var ResultSteps: Integer; AnalysisbyDimParameters: Record "Analysis by Dim. Parameters")` (integration): Integration event raised after navigating to next record in matrix view. Enables custom navigation logic and step calculation for matrix record positioning.
- `OnAfterSetCommonFilters(var GLAccount: Record "G/L Account"; AnalysisByDimParameters: Record "Analysis by Dim. Parameters")` (integration): Integration event raised after setting common filters on G/L Account records. Enables custom filtering logic for G/L account selection in dimensional analysis.
- `OnAfterCalcActualAmount(var GLAccount: Record "G/L Account"; AnalysisByDimParameters: Record "Analysis by Dim. Parameters"; var Amount: Decimal)` (integration): Integration event raised after calculating actual amounts for G/L accounts. Enables custom amount calculation logic for actual balance analysis.
- `OnAfterCalcBudgetAmount(var GLAccount: Record "G/L Account"; AnalysisByDimParameters: Record "Analysis by Dim. Parameters"; var Amount: Decimal)` (integration): Integration event for customizing budget amount calculation in GL balance by dimension matrix.
- `OnBeforeCalcActualAmounts(var GLAcc: Record "G/L Account"; AnalysisByDimParameters: Record "Analysis by Dim. Parameters"; var Amount: Decimal; var IsHandled: Boolean)` (integration): Integration event for custom actual amount calculation logic in GL balance by dimension matrix.
- `OnBeforeDrillDown(SetColFilter: Boolean; var GLAcc: Record "G/L Account"; AnalysisByDimParameters: Record "Analysis by Dim. Parameters"; var IsHandled: Boolean; var GLEntry: Record "G/L Entry"; var GLBudgetEntry: Record "G/L Budget Entry")` (integration): Integration event for custom drill-down logic in GL balance by dimension matrix.
- `OnBeforeDimCodeToOption(DimCode: Text[30]; var Result: Integer; var IsHandled: Boolean)` (integration): Integration event for custom dimension code to option conversion logic.
- `OnBeforeFindRec(DimOption: Enum "Analysis Dimension Option"; var DimensionValue: Record "Dimension Value"; var GLAccount: Record "G/L Account"; var DimensionCodeBuffer: Record "Dimension Code Buffer"; Which: Text[1024]; var Found: Boolean; var IsHandled: Boolean)` (integration): Integration event for custom record finding logic in GL balance by dimension matrix.
- `OnBeforeNextRec(DimOption: Enum "Analysis Dimension Option"; var DimensionValue: Record "Dimension Value"; var GLAccount: Record "G/L Account")` (integration): Integration event for custom record navigation logic in GL balance by dimension matrix.
- `OnCalcAmountOnAfterGLAccSetFilters(var GLAcc: Record "G/L Account"; SetColFilter: Boolean)` (integration): Integration event for custom filter logic after setting G/L account filters in amount calculation.
- `OnDrillDownOnBeforeRunGeneralLedgerEntriesPage(var GLAcc: Record "G/L Account"; var GLEntry: Record "G/L Entry")` (integration): Integration event raised before running the General Ledger Entries page during drill-down operations. Enables customization of drill-down behavior for general ledger entries.
- `OnDrillDownOnBeforeRunGLBudgetEntriesPage(var GLAcc: Record "G/L Account"; var GLBudgetEntry: Record "G/L Budget Entry")` (integration): Integration event raised before running the G/L Budget Entries page during drill-down operations. Enables customization of drill-down behavior for budget entries.
- `OnLookupCodeOnCaseElse(var DimOption: Option "G/L Account",Period,"Business Unit","Dimension 1","Dimension 2",Fund,"Dimension 3","Dimension 4","Dimension 5","Dimension 6","Dimension 7","Dimension 8"; DimCode: Text[30]; Code: Text[30])` (integration): Integration event raised for custom dimension option handling in lookup code operations. Enables extension of dimension lookup functionality beyond standard dimensions.
- `OnSetDimFiltersOnCaseElse(DimOption: Option "G/L Account",Period,"Business Unit","Dimension 1","Dimension 2",Fund,"Dimension 3","Dimension 4","Dimension 5","Dimension 6","Dimension 7","Dimension 8"; var TheGLAcc: Record "G/L Account"; var DimCodeBuf: Record "Dimension Code Buffer")` (integration): Integration event raised for custom dimension filter setup beyond standard dimensions. Enables extension of dimension filtering functionality in GL balance by dimension analysis.
- `OnCalcAmountOnAfterAssignAmount(var AnalysisByDimParameters: Record "Analysis by Dim. Parameters"; var GLAccount: record "G/L Account"; var Result: Decimal)` (integration): Integration event raised after calculating and assigning amount values in GL balance by dimension analysis. Enables custom amount calculation adjustments and result modification.
- `OnAfterCopyDimValueToBuf(var DimVal: Record "Dimension Value"; var DimCodeBuf: Record "Dimension Code Buffer")` (integration): Integration event raised after copying dimension value data to dimension code buffer. Enables custom handling of dimension value data during buffer operations.
- `OnAfterCopyGLAccToBuf(GLAcc: Record "G/L Account"; var DimCodeBuf: Record "Dimension Code Buffer")` (integration): Integration event raised after copying G/L Account data to dimension code buffer. Enables custom handling of G/L Account data during buffer operations in dimensional analysis.

## Procedures

- `Load(NewAnalysisByDimParameters: Record "Analysis by Dim. Parameters"; NewLineDimCode: Text[30]; NewColumnDimCode: Text[30]; NewMATRIX_ColumnCaptions: array[32] of Text[1024]; NewPrimKeyFirstCol: Text[1024]; CurrSetLength: Integer)`: Loads matrix configuration and parameters for dimensional analysis display. Initializes the matrix page with analysis parameters, dimension codes, column captions, and primary key positioning.
- `SetColumnVisibility()`: Configures visibility of matrix columns based on current set length. Controls which matrix field columns are displayed based on the number of active columns in the current matrix view.

Plus 26 local procedures.

## Triggers

OnAfterGetRecord, OnFindRecord, OnInit, OnNextRecord, OnOpenPage

## Relations

- source table [Table 367 "Dimension Code Buffer"](../table/367.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) (4 calls: `Load → FormatRoundingFactor`, `LoadDefault → FormatRoundingFactor`, `MATRIX_OnAfterGetRecord → RoundAmount`, …)
- [Codeunit 362 "PeriodPageManagement"](../codeunit/362.md) (3 calls: `FindPeriod → FindDate`, `FindRec → FindDate`, `NextRec → NextDate`)
- [Codeunit 408 "DimensionManagement"](../codeunit/408.md) (1 call: `GetDimValueTotaling → ResolveDimValueFilter`)
- [Page 120 "G/L Budget Entries"](../page/120.md) (1 call: `DrillDown → (object)`)
- [Page 18 "G/L Account List"](../page/18.md) (1 call: `LookUpCode → (object)`)
- [Page 240 "Business Unit List"](../page/240.md) (1 call: `LookUpCode → (object)`)
- [Page 560 "Dimension Value List"](../page/560.md) (1 call: `LookUpCode → (object)`)
- [Query 2401 "General Ledger Entries"](../query/2401.md) (1 call: `DrillDown → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC27

## Documented on Microsoft Learn

- [Work with dimensions to track and analyze data](https://learn.microsoft.com/dynamics365/business-central/finance-dimensions)

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: "G/L Balance by Dim. Matrix")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
