Page 488 Column Layout Names, source in 29

Source29

src/Layers/W1/BaseApp/Finance/FinancialReports/ColumnLayoutNames.Page.al190 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.FinancialReports;

/// <summary>
/// Provides management interface for financial report column definitions used in financial reporting.
/// Enables creation, editing, copying, import/export, and where-used analysis of column layout templates.
/// </summary>
/// <remarks>
/// Primary functionality: Column definition management, copy operations, RapidStart import/export integration.
/// Navigation: Links to Column Layout page for detailed column editing and Financial Report usage tracking.
/// Extensibility: Standard page extension patterns for additional fields and actions.
/// </remarks>
page 488 "Column Layout Names"
{
    AboutTitle = 'About (Financial Report) Column Definitions';
    AboutText = 'Use column definitions to specify the columns to include in a report. For example, you can design a report layout to compare net change and balance for the same period this year and last year.';
    AnalysisModeEnabled = false;
    ApplicationArea = All;
    Caption = '(Financial Report) Column Definitions';
    PageType = List;
    SourceTable = "Column Layout Name";
    UsageCategory = ReportsAndAnalysis;

    layout
    {
        area(content)
        {
            repeater(Control1)
            {
                ShowCaption = false;
                field(Name; Rec.Name)
                {
                    ApplicationArea = Basic, Suite;
                }
                field(Description; Rec.Description)
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Analysis View Name"; Rec."Analysis View Name")
                {
                    ApplicationArea = Basic, Suite;
                }
                field(Status; Rec.Status) { }
                field("Internal Description"; Rec."Internal Description")
                {
                    ApplicationArea = Suite;
                }
            }
        }
        area(factboxes)
        {
            systempart(Control1900383207; Links)
            {
                ApplicationArea = RecordLinks;
                Visible = false;
            }
            systempart(Control1905767507; Notes)
            {
                ApplicationArea = Notes;
                Visible = false;
            }
        }
    }

    actions
    {
        area(processing)
        {
            action(EditColumnLayoutSetup)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Edit Column Definition';
                Ellipsis = true;
                Image = SetupColumns;
                ToolTip = 'Create or change the column definition for the current financial report name.';

                trigger OnAction()
                var
                    ColumnLayout: Page "Column Layout";
                begin
                    ColumnLayout.SetColumnLayoutName(Rec.Name);
                    ColumnLayout.Run();
                end;
            }
            action(WhereUsed)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Where-Used';
                ToolTip = 'View or edit financial reports in which the column definition is used.';
                Image = Track;

                trigger OnAction()
                var
                    FinancialReport: Record "Financial Report";
                begin
                    FinancialReport.SetRange("Financial Report Column Group", Rec.Name);
                    Page.Run(0, FinancialReport);
                end;
            }
            action(CopyColumnLayout)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Copy Column Definition';
                Image = Copy;
                Scope = Repeater;
                ToolTip = 'Create a copy of the current column definition.';

                trigger OnAction()
                var
                    ColumnLayoutName: Record "Column Layout Name";
                begin
                    CurrPage.SetSelectionFilter(ColumnLayoutName);
                    Report.RunModal(Report::"Copy Column Layout", true, true, ColumnLayoutName);
                end;
            }
            action(ImportColumnDefinition)
            {
                ApplicationArea = All;
                Caption = 'Import Column Definition';
                Image = Import;
                Scope = Repeater;
                ToolTip = 'Import a RapidStart configuration package that contains settings for a set of column definitions. Importing column definitions lets you share them, for example, with another business unit. This requires that the column definition has been exported.';

                trigger OnAction()
                begin
                    Rec.XMLExchangeImport();
                end;

            }
            action(ExportColumnDefinition)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Export Column Definition';
                Image = Export;
                Scope = Repeater;
                ToolTip = 'Export settings for the selected column definition to a RapidStart configuration package. Exporting a column definition lets you share it with another business unit.';

                trigger OnAction()
                begin
                    Rec.XmlExchangeExport();
                end;
            }
        }

        area(Promoted)
        {
            group(Category_Process)
            {
                Caption = 'Process';

                actionref(EditColumnLayoutSetup_Promoted; EditColumnLayoutSetup) { }
                actionref(WhereUsed_Promoted; WhereUsed) { }

                group(CopyExportImport)
                {
                    Caption = 'Copy/Export/Import';

                    actionref(CopyColumnLayout_Promoted; CopyColumnLayout) { }
                    actionref(ImportColumnDefinition_Promoted; ImportColumnDefinition) { }
                    actionref(ExportColumnDefinition_Promoted; ExportColumnDefinition) { }
                }
            }
        }
    }

    trigger OnOpenPage()
    var
        FinancialReportStatus: Record "Financial Report Status";
        LastFilterGroup: Integer;
    begin
        if not FinancialReportStatus.WritePermission() then begin
            LastFilterGroup := Rec.FilterGroup();
            Rec.FilterGroup(4);
            Rec.SetRange("Status Blocked", false);
            Rec.FilterGroup(LastFilterGroup);
        end;
    end;

    trigger OnNewRecord(BelowxRec: Boolean)
    var
        FinancialReportMgt: Codeunit "Financial Report Mgt.";
    begin
        Rec.Status := FinancialReportMgt.GetDefaultStatus();
    end;
}