Page 766 Acc. Sched. Chart SubPage, source in 29
Source29
src/Layers/W1/BaseApp/Finance/FinancialReports/AccSchedChartSubPage.Page.al177 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>
/// Sub-page component for displaying chart setup lines in account schedule chart configuration.
/// Provides embedded interface for managing chart line data within larger chart setup pages.
/// </summary>
/// <remarks>
/// List part page designed for embedding in chart setup forms. Shows chart setup lines
/// with read-only data entry focused on chart line management within parent chart configuration.
/// Integrates with chart visualization system for line-by-line chart configuration.
/// </remarks>
page 766 "Acc. Sched. Chart SubPage"
{
Caption = 'Acc. Sched. Chart SubPage';
DeleteAllowed = false;
InsertAllowed = false;
PageType = ListPart;
SourceTable = "Acc. Sched. Chart Setup Line";
layout
{
area(content)
{
repeater(Control1)
{
ShowCaption = false;
field("Account Schedule Line No."; Rec."Account Schedule Line No.")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Column Layout Line No."; Rec."Column Layout Line No.")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Original Measure Name"; Rec."Original Measure Name")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Measure Name"; Rec."Measure Name")
{
ApplicationArea = Basic, Suite;
}
field("Chart Type"; Rec."Chart Type")
{
ApplicationArea = All;
Visible = IsMeasure;
trigger OnValidate()
begin
if Rec."Chart Type" = Rec."Chart Type"::" " then
CurrPage.Update();
end;
}
}
}
}
actions
{
area(processing)
{
action(Edit)
{
ApplicationArea = Basic, Suite;
Caption = 'Edit';
Image = EditLines;
ToolTip = 'Edit the chart.';
trigger OnAction()
var
AccSchedChartSetupLine: Record "Acc. Sched. Chart Setup Line";
AccSchedChartLine: Page "Acc. Sched. Chart Line";
AccSchedChartMatrix: Page "Acc. Sched. Chart Matrix";
begin
SetFilters(AccSchedChartSetupLine);
AccSchedChartSetupLine.SetRange("Chart Type");
case AccountSchedulesChartSetup."Base X-Axis on" of
AccountSchedulesChartSetup."Base X-Axis on"::Period:
if IsMeasure then begin
AccSchedChartMatrix.SetFilters(AccountSchedulesChartSetup);
AccSchedChartMatrix.RunModal();
end;
AccountSchedulesChartSetup."Base X-Axis on"::"Acc. Sched. Line",
AccountSchedulesChartSetup."Base X-Axis on"::"Acc. Sched. Column":
begin
if IsMeasure then
AccSchedChartLine.SetViewAsMeasure(true)
else
AccSchedChartLine.SetViewAsMeasure(false);
AccSchedChartLine.SetTableView(AccSchedChartSetupLine);
AccSchedChartLine.RunModal();
end;
end;
CurrPage.Update();
end;
}
action(Delete)
{
ApplicationArea = Basic, Suite;
Caption = 'Delete';
Image = Delete;
ToolTip = 'Delete the record.';
trigger OnAction()
var
AccSchedChartSetupLine: Record "Acc. Sched. Chart Setup Line";
begin
CurrPage.SetSelectionFilter(AccSchedChartSetupLine);
AccSchedChartSetupLine.ModifyAll("Chart Type", Rec."Chart Type"::" ");
CurrPage.Update();
end;
}
action("Reset to default Setup")
{
ApplicationArea = Basic, Suite;
Caption = 'Reset to Default Setup';
Image = Refresh;
ToolTip = 'Undo your change and return to the default setup.';
trigger OnAction()
begin
AccountSchedulesChartSetup.RefreshLines(false);
end;
}
}
}
trigger OnFindRecord(Which: Text): Boolean
begin
SetFilters(Rec);
exit(Rec.FindSet());
end;
var
AccountSchedulesChartSetup: Record "Account Schedules Chart Setup";
IsMeasure: Boolean;
/// <summary>
/// Sets the view mode for chart lines to display as measures or dimensions.
/// Controls filtering and presentation of chart setup lines in the subpage.
/// </summary>
/// <param name="Value">True to view as measures, false to view as dimensions</param>
procedure SetViewAsMeasure(Value: Boolean)
begin
IsMeasure := Value;
end;
local procedure SetFilters(var AccSchedChartSetupLine: Record "Acc. Sched. Chart Setup Line")
begin
AccSchedChartSetupLine.Reset();
if IsMeasure then
AccountSchedulesChartSetup.SetLinkToMeasureLines(AccSchedChartSetupLine)
else
AccountSchedulesChartSetup.SetLinkToDimensionLines(AccSchedChartSetupLine);
AccSchedChartSetupLine.SetFilter("Chart Type", '<>%1', AccSchedChartSetupLine."Chart Type"::" ");
end;
/// <summary>
/// Sets the account schedules chart setup record for the subpage.
/// Initializes the chart configuration context for line filtering and display.
/// </summary>
/// <param name="NewAccountSchedulesChartSetup">Chart setup record to use for configuration</param>
procedure SetSetupRec(var NewAccountSchedulesChartSetup: Record "Account Schedules Chart Setup")
begin
AccountSchedulesChartSetup := NewAccountSchedulesChartSetup;
end;
}