Table 376 G/L Account (Analysis View)

App
Base Application
Namespace
Microsoft.Finance.Analysis
Versions
17-28

Fields, 56Keys, 5Procedures, 3Events, 1

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Finance/Analysis/GLAccountAnalysisView.Table.al856 lines, Copyright (c) Microsoft Corporation. MIT

// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Finance.Analysis;

using Microsoft.CashFlow.Account;
using Microsoft.CashFlow.Forecast;
using Microsoft.Finance.Consolidation;
using Microsoft.Finance.Dimension;
using Microsoft.Finance.FinancialReports;
using Microsoft.Finance.GeneralLedger.Account;
using Microsoft.Finance.GeneralLedger.Budget;
using Microsoft.Finance.GeneralLedger.Setup;
using Microsoft.Finance.SalesTax;
using Microsoft.Finance.VAT.Setup;
using Microsoft.Foundation.Comment;

/// <summary>
/// Virtual table combining G/L Account and Cash Flow Account data for analysis view operations.
/// Provides unified interface for analysis across multiple account sources with dimensional filtering.
/// </summary>
/// <remarks>
/// Extends G/L Account functionality with Cash Flow Account integration for comprehensive financial analysis.
/// Supports multi-dimensional filtering and budget analysis across different account types.
/// Used by analysis views and financial reporting for cross-account-type analysis.
/// </remarks>
table 376 "G/L Account (Analysis View)"
{
    Caption = 'G/L Account (Analysis View)';
    DataCaptionFields = "No.", Name;
    DataClassification = CustomerContent;

    fields
    {
        /// <summary>
        /// Unique identifier for the G/L account or cash flow account.
        /// </summary>
        field(1; "No."; Code[20])
        {
            Caption = 'No.';
            ToolTip = 'Specifies the number of the involved entry or record, according to the specified number series.';
            NotBlank = true;
            TableRelation = if ("Account Source" = const("G/L Account")) "G/L Account"
            else
            if ("Account Source" = const("Cash Flow Account")) "Cash Flow Account";
        }
        /// <summary>
        /// Name of the account for display and identification purposes.
        /// </summary>
        field(2; Name; Text[100])
        {
            Caption = 'Name';
            ToolTip = 'Specifies the name of the general ledger account.';
        }
        /// <summary>
        /// Alternative search name for quick lookup and filtering operations.
        /// </summary>
        field(3; "Search Name"; Code[100])
        {
            Caption = 'Search Name';
        }
        /// <summary>
        /// Type of account (Posting, Heading, Total, Begin-Total, End-Total).
        /// </summary>
        field(4; "Account Type"; Enum "G/L Account Type")
        {
            Caption = 'Account Type';
            ToolTip = 'Specifies the purpose of the account. Total: Used to total a series of balances on accounts from many different account groupings. To use Total, leave this field blank. Begin-Total: A marker for the beginning of a series of accounts to be totaled that ends with an End-Total account. End-Total: A total of a series of accounts that starts with the preceding Begin-Total account. The total is defined in the Totaling field.';
        }
        /// <summary>
        /// Source of the account data (G/L Account or Cash Flow Forecast).
        /// </summary>
        field(5; "Account Source"; Enum "Analysis Account Source")
        {
            Caption = 'Account Source';
        }
        /// <summary>
        /// Global Dimension 1 code associated with the account for dimensional analysis.
        /// </summary>
        field(6; "Global Dimension 1 Code"; Code[20])
        {
            CaptionClass = '1,1,1';
            Caption = 'Global Dimension 1 Code';
            TableRelation = "Dimension Value".Code where("Global Dimension No." = const(1));
        }
        /// <summary>
        /// Global Dimension 2 code associated with the account for dimensional analysis.
        /// </summary>
        field(7; "Global Dimension 2 Code"; Code[20])
        {
            CaptionClass = '1,1,2';
            Caption = 'Global Dimension 2 Code';
            TableRelation = "Dimension Value".Code where("Global Dimension No." = const(2));
        }
        /// <summary>
        /// Classification of account as Income Statement or Balance Sheet type.
        /// </summary>
        field(9; "Income/Balance"; Enum "G/L Account Report Type")
        {
            Caption = 'Income/Balance';
            ToolTip = 'Specifies whether a general ledger account is an income statement account or a balance sheet account.';
        }
        /// <summary>
        /// Restricts posting to either Both, Debit only, or Credit only transactions.
        /// </summary>
        field(10; "Debit/Credit"; Option)
        {
            Caption = 'Debit/Credit';
            OptionCaption = 'Both,Debit,Credit';
            OptionMembers = Both,Debit,Credit;
        }
        /// <summary>
        /// Secondary account number for alternative identification or reference.
        /// </summary>
        field(11; "No. 2"; Code[20])
        {
            Caption = 'No. 2';
        }
        /// <summary>
        /// Indicates whether comments exist for this G/L account.
        /// </summary>
        field(12; Comment; Boolean)
        {
            CalcFormula = exist("Comment Line" where("Table Name" = const("G/L Account"),
                                                      "No." = field("No.")));
            Caption = 'Comment';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Indicates whether the account is blocked from posting transactions.
        /// </summary>
        field(13; Blocked; Boolean)
        {
            Caption = 'Blocked';
        }
        /// <summary>
        /// Indicates whether transactions can be posted directly to this account.
        /// </summary>
        field(14; "Direct Posting"; Boolean)
        {
            Caption = 'Direct Posting';
            ToolTip = 'Specifies whether you will be able to post directly or only indirectly to this general ledger account.';
            InitValue = true;
        }
        /// <summary>
        /// Indicates whether this account is used for reconciliation purposes.
        /// </summary>
        field(16; "Reconciliation Account"; Boolean)
        {
            Caption = 'Reconciliation Account';
        }
        /// <summary>
        /// Indicates whether to start a new page when printing this account in reports.
        /// </summary>
        field(17; "New Page"; Boolean)
        {
            Caption = 'New Page';
        }
        /// <summary>
        /// Number of blank lines to insert before this account in reports.
        /// </summary>
        field(18; "No. of Blank Lines"; Integer)
        {
            Caption = 'No. of Blank Lines';
            MinValue = 0;
        }
        /// <summary>
        /// Indentation level for this account in hierarchical report displays.
        /// </summary>
        field(19; Indentation; Integer)
        {
            Caption = 'Indentation';
            MinValue = 0;
        }
        /// <summary>
        /// Date when this account record was last modified.
        /// </summary>
        field(26; "Last Date Modified"; Date)
        {
            Caption = 'Last Date Modified';
            Editable = false;
        }
        /// <summary>
        /// Filter for Cash Flow Forecast codes when analyzing cash flow accounts.
        /// </summary>
        field(27; "Cash Flow Forecast Filter"; Code[20])
        {
            Caption = 'Cash Flow Forecast Filter';
            FieldClass = FlowFilter;
            TableRelation = "Cash Flow Forecast";
        }
        /// <summary>
        /// Date filter for limiting analysis to specific date ranges.
        /// </summary>
        field(28; "Date Filter"; Date)
        {
            Caption = 'Date Filter';
            FieldClass = FlowFilter;
        }
        /// <summary>
        /// Global dimension 1 filter for dimensional analysis.
        /// </summary>
        field(29; "Global Dimension 1 Filter"; Code[20])
        {
            CaptionClass = '1,3,1';
            Caption = 'Global Dimension 1 Filter';
            FieldClass = FlowFilter;
            TableRelation = "Dimension Value".Code where("Global Dimension No." = const(1));
        }
        /// <summary>
        /// Global dimension 2 filter for dimensional analysis.
        /// </summary>
        field(30; "Global Dimension 2 Filter"; Code[20])
        {
            CaptionClass = '1,3,2';
            Caption = 'Global Dimension 2 Filter';
            FieldClass = FlowFilter;
            TableRelation = "Dimension Value".Code where("Global Dimension No." = const(2));
        }
        /// <summary>
        /// Account balance at the specified date from analysis view entries.
        /// </summary>
        field(31; "Balance at Date"; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry".Amount where("Analysis View Code" = field("Analysis View Filter"),
                                                                  "Business Unit Code" = field("Business Unit Filter"),
                                                                  "Account No." = field("No."),
                                                                  "Account Source" = field("Account Source"),
                                                                  "Account No." = field(filter(Totaling)),
                                                                  "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                  "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                  "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                  "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                  "Posting Date" = field(upperlimit("Date Filter")),
                                                                  "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Balance at Date';
            ToolTip = 'Specifies the G/L account balance on the last date included in the Date Filter field.';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Net change in account balance during the filtered period from analysis view entries.
        /// </summary>
        field(32; "Net Change"; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry".Amount where("Analysis View Code" = field("Analysis View Filter"),
                                                                  "Business Unit Code" = field("Business Unit Filter"),
                                                                  "Account No." = field("No."),
                                                                  "Account Source" = field("Account Source"),
                                                                  "Account No." = field(filter(Totaling)),
                                                                  "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                  "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                  "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                  "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                  "Posting Date" = field("Date Filter"),
                                                                   "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Net Change';
            ToolTip = 'Specifies the net change in the account balance during the time period in the Date Filter field.';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Budgeted amount for the account in the analysis view period.
        /// </summary>
        field(33; "Budgeted Amount"; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Budget Entry".Amount where("Analysis View Code" = field("Analysis View Filter"),
                                                                         "Budget Name" = field("Budget Filter"),
                                                                         "Business Unit Code" = field("Business Unit Filter"),
                                                                         "G/L Account No." = field("No."),
                                                                         "G/L Account No." = field(filter(Totaling)),
                                                                         "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                         "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                         "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                         "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                         "Posting Date" = field("Date Filter")));
            Caption = 'Budgeted Amount';
            ToolTip = 'Specifies either the G/L account''s total budget or, if you have specified a name in the Budget Name field, a specific budget.';
            FieldClass = FlowField;
        }
        /// <summary>
        /// Account totaling range for sum-type accounts in analysis views.
        /// </summary>
        field(34; Totaling; Text[250])
        {
            Caption = 'Totaling';
            ToolTip = 'Specifies an account interval or a list of account numbers. The entries of the account will be totaled to give a total balance. How entries are totaled depends on the value in the Account Type field.';
            TableRelation = if ("Account Source" = const("G/L Account")) "G/L Account"
            else
            if ("Account Source" = const("Cash Flow Account")) "Cash Flow Account";
            ValidateTableRelation = false;
        }
        /// <summary>
        /// Budget filter for limiting analysis to specific budget names.
        /// </summary>
        field(35; "Budget Filter"; Code[10])
        {
            Caption = 'Budget Filter';
            FieldClass = FlowFilter;
            TableRelation = "G/L Budget Name";
        }
        /// <summary>
        /// Current account balance from analysis view entries.
        /// </summary>
        field(36; Balance; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry".Amount where("Analysis View Code" = field("Analysis View Filter"),
                                                                  "Business Unit Code" = field("Business Unit Filter"),
                                                                  "Account No." = field("No."),
                                                                  "Account Source" = field("Account Source"),
                                                                  "Account No." = field(filter(Totaling)),
                                                                  "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                  "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                  "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                  "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                  "Posting Date" = field("Date Filter"),
                                                                   "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Balance';
            ToolTip = 'Specifies the balance on this account.';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Budgeted amount for the account at a specific date in analysis views.
        /// </summary>
        field(37; "Budgeted at Date"; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Budget Entry".Amount where("Analysis View Code" = field("Analysis View Filter"),
                                                                         "Budget Name" = field("Budget Filter"),
                                                                         "Business Unit Code" = field("Business Unit Filter"),
                                                                         "G/L Account No." = field("No."),
                                                                         "G/L Account No." = field(filter(Totaling)),
                                                                         "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                         "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                         "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                         "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                         "Posting Date" = field(upperlimit("Date Filter"))));
            Caption = 'Budgeted at Date';
            FieldClass = FlowField;
        }
        /// <summary>
        /// Consolidation debit account for consolidation processes.
        /// </summary>
        field(40; "Consol. Debit Acc."; Code[20])
        {
            AccessByPermission = TableData "Business Unit" = R;
            Caption = 'Consol. Debit Acc.';
            ToolTip = 'Specifies the account number in a consolidated company to transfer credit balances.';
        }
        /// <summary>
        /// Consolidation credit account for consolidation processes.
        /// </summary>
        field(41; "Consol. Credit Acc."; Code[20])
        {
            AccessByPermission = TableData "Business Unit" = R;
            Caption = 'Consol. Credit Acc.';
            ToolTip = 'Specifies the account number in a consolidated company to transfer credit balances.';
        }
        /// <summary>
        /// Business unit filter for multi-company analysis.
        /// </summary>
        field(42; "Business Unit Filter"; Code[20])
        {
            Caption = 'Business Unit Filter';
            FieldClass = FlowFilter;
            TableRelation = "Business Unit";
        }
        /// <summary>
        /// General posting type for transaction categorization in analysis.
        /// </summary>
        field(43; "Gen. Posting Type"; Option)
        {
            Caption = 'Gen. Posting Type';
            ToolTip = 'Specifies the type of transaction.';
            OptionCaption = ' ,Purchase,Sale';
            OptionMembers = " ",Purchase,Sale;
        }
        /// <summary>
        /// General business posting group for analysis categorization.
        /// </summary>
        field(44; "Gen. Bus. Posting Group"; Code[20])
        {
            Caption = 'Gen. Bus. Posting Group';
            ToolTip = 'Specifies the vendor''s or customer''s trade type to link transactions made for this business partner with the appropriate general ledger account according to the general posting setup.';
            TableRelation = "Gen. Business Posting Group";
        }
        /// <summary>
        /// General product posting group for analysis categorization.
        /// </summary>
        field(45; "Gen. Prod. Posting Group"; Code[20])
        {
            Caption = 'Gen. Prod. Posting Group';
            ToolTip = 'Specifies the item''s product type to link transactions made for this item with the appropriate general ledger account according to the general posting setup.';
            TableRelation = "Gen. Product Posting Group";
        }
        /// <summary>
        /// Total debit amounts for the account in the analysis period.
        /// </summary>
        field(47; "Debit Amount"; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry"."Debit Amount" where("Analysis View Code" = field("Analysis View Filter"),
                                                                          "Business Unit Code" = field("Business Unit Filter"),
                                                                          "Account No." = field("No."),
                                                                          "Account Source" = field("Account Source"),
                                                                          "Account No." = field(Totaling),
                                                                          "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                          "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                          "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                          "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                          "Posting Date" = field("Date Filter"),
                                                                           "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Debit Amount';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Total credit amounts for the account in the analysis period.
        /// </summary>
        field(48; "Credit Amount"; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry"."Credit Amount" where("Analysis View Code" = field("Analysis View Filter"),
                                                                           "Business Unit Code" = field("Business Unit Filter"),
                                                                           "Account No." = field("No."),
                                                                           "Account Source" = field("Account Source"),
                                                                           "Account No." = field(Totaling),
                                                                           "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                           "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                           "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                           "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                           "Posting Date" = field("Date Filter"),
                                                                           "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Credit Amount';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Indicates if automatic extended texts are enabled for the account.
        /// </summary>
        field(49; "Automatic Ext. Texts"; Boolean)
        {
            Caption = 'Automatic Ext. Texts';
        }
        /// <summary>
        /// Budgeted debit amount for the account in the analysis period.
        /// </summary>
        field(52; "Budgeted Debit Amount"; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankNumbers = BlankNegAndZero;
            BlankZero = true;
            CalcFormula = sum("Analysis View Budget Entry".Amount where("Analysis View Code" = field("Analysis View Filter"),
                                                                         "Budget Name" = field("Budget Filter"),
                                                                         "Business Unit Code" = field("Business Unit Filter"),
                                                                         "G/L Account No." = field("No."),
                                                                         "G/L Account No." = field(filter(Totaling)),
                                                                         "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                         "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                         "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                         "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                         "Posting Date" = field("Date Filter"),
                                                                         Amount = filter(> 0)));
            Caption = 'Budgeted Debit Amount';
            FieldClass = FlowField;
        }
        /// <summary>
        /// Budgeted credit amount for the account in the analysis period.
        /// </summary>
        field(53; "Budgeted Credit Amount"; Decimal)
        {
            AutoFormatExpression = '';
            AutoFormatType = 1;
            BlankNumbers = BlankZeroAndPos;
            BlankZero = true;
            CalcFormula = - sum("Analysis View Budget Entry".Amount where("Analysis View Code" = field("Analysis View Filter"),
                                                                          "Budget Name" = field("Budget Filter"),
                                                                          "Business Unit Code" = field("Business Unit Filter"),
                                                                          "G/L Account No." = field("No."),
                                                                          "G/L Account No." = field(filter(Totaling)),
                                                                          "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                          "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                          "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                          "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                          "Posting Date" = field("Date Filter"),
                                                                          Amount = filter(< 0)));
            Caption = 'Budgeted Credit Amount';
            FieldClass = FlowField;
        }
        /// <summary>
        /// Tax area code for sales tax calculations in analysis.
        /// </summary>
        field(54; "Tax Area Code"; Code[20])
        {
            Caption = 'Tax Area Code';
            TableRelation = "Tax Area";
        }
        /// <summary>
        /// Indicates if the account is liable for sales tax calculations.
        /// </summary>
        field(55; "Tax Liable"; Boolean)
        {
            Caption = 'Tax Liable';
        }
        /// <summary>
        /// Tax group code for sales tax calculations in analysis.
        /// </summary>
        field(56; "Tax Group Code"; Code[20])
        {
            Caption = 'Tax Group Code';
            TableRelation = "Tax Group";
        }
        /// <summary>
        /// VAT business posting group for VAT calculations in analysis.
        /// </summary>
        field(57; "VAT Bus. Posting Group"; Code[20])
        {
            Caption = 'VAT Bus. Posting Group';
            ToolTip = 'Specifies the VAT specification of the involved customer or vendor to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup.';
            TableRelation = "VAT Business Posting Group";
        }
        /// <summary>
        /// VAT product posting group for VAT calculations in analysis.
        /// </summary>
        field(58; "VAT Prod. Posting Group"; Code[20])
        {
            Caption = 'VAT Prod. Posting Group';
            ToolTip = 'Specifies the VAT specification of the involved item or resource to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup.';
            TableRelation = "VAT Product Posting Group";
        }
        /// <summary>
        /// Additional currency net change amount for the analysis period.
        /// </summary>
        field(60; "Additional-Currency Net Change"; Decimal)
        {
            AutoFormatExpression = GetAdditionalReportingCurrencyCode();
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry"."Add.-Curr. Amount" where("Analysis View Code" = field("Analysis View Filter"),
                                                                               "Business Unit Code" = field("Business Unit Filter"),
                                                                               "Account No." = field("No."),
                                                                               "Account Source" = field("Account Source"),
                                                                               "Account No." = field(filter(Totaling)),
                                                                               "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                               "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                               "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                               "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                               "Posting Date" = field("Date Filter"),
                                                                               "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Additional-Currency Net Change';
            ToolTip = 'Specifies the net change in the account balance.';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Additional currency balance at specific date for analysis.
        /// </summary>
        field(61; "Add.-Currency Balance at Date"; Decimal)
        {
            AutoFormatExpression = GetAdditionalReportingCurrencyCode();
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry"."Add.-Curr. Amount" where("Analysis View Code" = field("Analysis View Filter"),
                                                                               "Business Unit Code" = field("Business Unit Filter"),
                                                                               "Account No." = field("No."),
                                                                               "Account Source" = field("Account Source"),
                                                                               "Account No." = field(filter(Totaling)),
                                                                               "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                               "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                               "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                               "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                               "Posting Date" = field(upperlimit("Date Filter")),
                                                                               "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Add.-Currency Balance at Date';
            ToolTip = 'Specifies the G/L account balance, in the additional reporting currency, on the last date included in the Date Filter field.';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Additional currency balance for the account in analysis views.
        /// </summary>
        field(62; "Additional-Currency Balance"; Decimal)
        {
            AutoFormatExpression = GetAdditionalReportingCurrencyCode();
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry"."Add.-Curr. Amount" where("Analysis View Code" = field("Analysis View Filter"),
                                                                               "Business Unit Code" = field("Business Unit Filter"),
                                                                               "Account No." = field("No."),
                                                                               "Account Source" = field("Account Source"),
                                                                               "Account No." = field(filter(Totaling)),
                                                                               "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                               "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                               "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                               "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                               "Posting Date" = field("Date Filter"),
                                                                               "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Additional-Currency Balance';
            ToolTip = 'Specifies the balance on this account, in the additional reporting currency.';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Exchange rate adjustment type for currency conversion in analysis.
        /// </summary>
        field(63; "Exchange Rate Adjustment"; Option)
        {
            Caption = 'Exchange Rate Adjustment';
            OptionCaption = 'No Adjustment,Adjust Amount,Adjust Additional-Currency Amount';
            OptionMembers = "No Adjustment","Adjust Amount","Adjust Additional-Currency Amount";
        }
        /// <summary>
        /// Additional currency debit amount for the analysis period.
        /// </summary>
        field(64; "Add.-Currency Debit Amount"; Decimal)
        {
            AutoFormatExpression = GetAdditionalReportingCurrencyCode();
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry"."Add.-Curr. Debit Amount" where("Analysis View Code" = field("Analysis View Filter"),
                                                                                     "Business Unit Code" = field("Business Unit Filter"),
                                                                                     "Account No." = field("No."),
                                                                                     "Account Source" = field("Account Source"),
                                                                                     "Account No." = field(filter(Totaling)),
                                                                                     "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                                     "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                                     "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                                     "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                                     "Posting Date" = field("Date Filter"),
                                                                                     "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Add.-Currency Debit Amount';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Additional currency credit amount for the analysis period.
        /// </summary>
        field(65; "Add.-Currency Credit Amount"; Decimal)
        {
            AutoFormatExpression = GetAdditionalReportingCurrencyCode();
            AutoFormatType = 1;
            BlankZero = true;
            CalcFormula = sum("Analysis View Entry"."Add.-Curr. Credit Amount" where("Analysis View Code" = field("Analysis View Filter"),
                                                                                      "Business Unit Code" = field("Business Unit Filter"),
                                                                                      "Account No." = field("No."),
                                                                                      "Account Source" = field("Account Source"),
                                                                                      "Account No." = field(filter(Totaling)),
                                                                                      "Dimension 1 Value Code" = field("Dimension 1 Filter"),
                                                                                      "Dimension 2 Value Code" = field("Dimension 2 Filter"),
                                                                                      "Dimension 3 Value Code" = field("Dimension 3 Filter"),
                                                                                      "Dimension 4 Value Code" = field("Dimension 4 Filter"),
                                                                                      "Posting Date" = field("Date Filter"),
                                                                                      "Cash Flow Forecast No." = field("Cash Flow Forecast Filter")));
            Caption = 'Add.-Currency Credit Amount';
            Editable = false;
            FieldClass = FlowField;
        }
        /// <summary>
        /// Analysis view filter code for data selection.
        /// </summary>
        field(66; "Analysis View Filter"; Code[10])
        {
            Caption = 'Analysis View Filter';
            FieldClass = FlowFilter;
            TableRelation = "Analysis View";
        }
        /// <summary>
        /// Dimension 1 filter for analysis view data selection.
        /// </summary>
        field(67; "Dimension 1 Filter"; Code[20])
        {
            CaptionClass = GetCaptionClass(1);
            Caption = 'Dimension 1 Filter';
            FieldClass = FlowFilter;
        }
        /// <summary>
        /// Dimension 2 filter for analysis view data selection.
        /// </summary>
        field(68; "Dimension 2 Filter"; Code[20])
        {
            CaptionClass = GetCaptionClass(2);
            Caption = 'Dimension 2 Filter';
            FieldClass = FlowFilter;
        }
        /// <summary>
        /// Dimension 3 filter for analysis view data selection.
        /// </summary>
        field(69; "Dimension 3 Filter"; Code[20])
        {
            CaptionClass = GetCaptionClass(3);
            Caption = 'Dimension 3 Filter';
            FieldClass = FlowFilter;
        }
        /// <summary>
        /// Dimension 4 filter for analysis view data selection.
        /// </summary>
        field(70; "Dimension 4 Filter"; Code[20])
        {
            CaptionClass = GetCaptionClass(4);
            Caption = 'Dimension 4 Filter';
            FieldClass = FlowFilter;
        }
    }

    keys
    {
        key(Key1; "No.", "Account Source")
        {
            Clustered = true;
        }
        key(Key2; "Search Name")
        {
        }
        key(Key3; "Reconciliation Account")
        {
        }
        key(Key4; "Gen. Bus. Posting Group")
        {
        }
        key(Key5; "Gen. Prod. Posting Group")
        {
        }
    }

    fieldgroups
    {
    }

    var
        AnalysisView: Record "Analysis View";

#pragma warning disable AA0074
        Text000: Label '1,6,,Dimension 1 Filter';
        Text001: Label '1,6,,Dimension 2 Filter';
        Text002: Label '1,6,,Dimension 3 Filter';
        Text003: Label '1,6,,Dimension 4 Filter';
#pragma warning restore AA0074

    /// <summary>
    /// Returns the caption class string for dimension fields based on analysis view configuration.
    /// </summary>
    /// <param name="AnalysisViewDimType">Dimension type (1-4) for caption generation</param>
    /// <returns>Caption class string for the specified dimension type</returns>
    procedure GetCaptionClass(AnalysisViewDimType: Integer) Result: Text[250]
    var
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforeGetCaptionClass(Rec, AnalysisViewDimType, Result, IsHandled);
        if IsHandled then
            exit;

        if AnalysisView.Code <> GetFilter("Analysis View Filter") then
            AnalysisView.Get(GetFilter("Analysis View Filter"));
        case AnalysisViewDimType of
            1:
                begin
                    if AnalysisView."Dimension 1 Code" <> '' then
                        exit('1,6,' + AnalysisView."Dimension 1 Code");

                    exit(Text000);
                end;
            2:
                begin
                    if AnalysisView."Dimension 2 Code" <> '' then
                        exit('1,6,' + AnalysisView."Dimension 2 Code");

                    exit(Text001);
                end;
            3:
                begin
                    if AnalysisView."Dimension 3 Code" <> '' then
                        exit('1,6,' + AnalysisView."Dimension 3 Code");

                    exit(Text002);
                end;
            4:
                begin
                    if AnalysisView."Dimension 4 Code" <> '' then
                        exit('1,6,' + AnalysisView."Dimension 4 Code");

                    exit(Text003);
                end;
        end;
    end;

    /// <summary>
    /// Copies dimension filters from account schedule line to this analysis view record.
    /// </summary>
    /// <param name="AccSchedLine">Account schedule line containing dimension filters to copy</param>
    procedure CopyDimFilters(var AccSchedLine: Record "Acc. Schedule Line")
    begin
        AccSchedLine.CopyFilter("Dimension 1 Filter", "Dimension 1 Filter");
        AccSchedLine.CopyFilter("Dimension 2 Filter", "Dimension 2 Filter");
        AccSchedLine.CopyFilter("Dimension 3 Filter", "Dimension 3 Filter");
        AccSchedLine.CopyFilter("Dimension 4 Filter", "Dimension 4 Filter");
    end;

    /// <summary>
    /// Sets dimension filters for analysis view filtering.
    /// </summary>
    /// <param name="DimFilter1">Dimension 1 filter text</param>
    /// <param name="DimFilter2">Dimension 2 filter text</param>
    /// <param name="DimFilter3">Dimension 3 filter text</param>
    /// <param name="DimFilter4">Dimension 4 filter text</param>
    procedure SetDimFilters(DimFilter1: Text; DimFilter2: Text; DimFilter3: Text; DimFilter4: Text)
    begin
        SetFilter("Dimension 1 Filter", DimFilter1);
        SetFilter("Dimension 2 Filter", DimFilter2);
        SetFilter("Dimension 3 Filter", DimFilter3);
        SetFilter("Dimension 4 Filter", DimFilter4);
    end;

    /// <summary>
    /// Integration event for customizing caption class generation for analysis view dimensions.
    /// </summary>
    /// <param name="GLAccountAnalysisView">G/L Account analysis view record</param>
    /// <param name="AnalysisViewDimType">Dimension type for caption generation</param>
    /// <param name="Result">Caption class result string</param>
    /// <param name="IsHandled">Set to true to skip standard caption class logic</param>
    [IntegrationEvent(false, false)]
    local procedure OnBeforeGetCaptionClass(var GLAccountAnalysisView: Record "G/L Account (Analysis View)"; AnalysisViewDimType: Integer; var Result: Text[250]; var IsHandled: Boolean)
    begin
    end;

    local procedure GetAdditionalReportingCurrencyCode(): Code[10]
    var
        GLSetup: Record "General Ledger Setup";
    begin
        GLSetup.Get();
        exit(GLSetup."Additional Reporting Currency");
    end;
}