Page 787 New Fin. Report Excel Templ., source in 29

Source29

src/Layers/W1/BaseApp/Finance/FinancialReports/NewFinReportExcelTempl.Page.al74 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>
/// Dialog page for copying existing financial report Excel templates to create new templates.
/// Provides template duplication functionality with name modification and validation.
/// </summary>
/// <remarks>
/// Standard dialog enabling users to copy existing Excel templates for financial reports.
/// Supports template replication scenarios where similar formatting is needed across
/// multiple financial reports without recreating Excel layouts from scratch.
/// </remarks>
page 787 "New Fin. Report Excel Templ."
{
    Caption = 'Copy Financial Report Excel Layout';
    PageType = StandardDialog;
    Extensible = false;
    SourceTable = "Fin. Report Excel Template";
    SourceTableTemporary = true;
    DelayedInsert = true;

    layout
    {
        area(content)
        {
            field("Financial Report Name"; Rec."Financial Report Name")
            {
                ApplicationArea = Basic, Suite;
                Editable = false;
            }
            field(CodeToCopy; CodeToCopy)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Source Layout Code';
                ToolTip = 'Specifies the code of the existing layout to copy from.';
                Visible = CodeToCopy <> '';
                Editable = false;
            }
            field(NewCode; NewCode)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'New Layout Code';
                ToolTip = 'Specifies the code of the new layout.';
                ShowMandatory = true;
            }
        }
    }

    trigger OnQueryClosePage(CloseAction: Action): Boolean
    begin
        if CloseAction = Action::Ok then begin
            if NewCode = '' then
                Error(MissingNewCodeErr);
            Rec.Code := NewCode;
        end;
    end;

    var
        NewCode: Code[50];
        CodeToCopy: Code[50];
        MissingNewCodeErr: Label 'You must specify a code for the new layout.';
        CopyOfTxt: Label 'Copy of %1', Comment = '%1 = Original layout description';

    internal procedure SetSource(SourceExcelTemplate: Record "Fin. Report Excel Template")
    begin
        Rec."Financial Report Name" := SourceExcelTemplate."Financial Report Name";
        Rec.Description := CopyStr(StrSubstNo(CopyOfTxt, SourceExcelTemplate.Description), 1, MaxStrLen(Rec.Description));
        Rec.Insert();
        CodeToCopy := SourceExcelTemplate.Code;
    end;
}