Table 763 Acc. Sched. Chart Setup Line
- App
- Base Application
- Namespace
- Microsoft.Finance.FinancialReports
- Versions
- 17-28
Fields, 10Keys, 1Procedures, 2Obsolete, 1
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Finance/FinancialReports/AccSchedChartSetupLine.Table.al188 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;
using System.Visualization;
/// <summary>
/// Stores individual line configuration for account schedule chart setups with chart type and measure definitions.
/// Defines which account schedule lines and column layouts appear in charts with their visualization properties.
/// </summary>
/// <remarks>
/// Primary usage: Chart line configuration, measure and dimension setup for business chart visualization.
/// Integration: Links with Account Schedules Chart Setup, Account Schedule Lines, and Business Chart Buffer.
/// Extensibility: Standard table extension patterns for additional chart types and visualization options.
/// </remarks>
table 763 "Acc. Sched. Chart Setup Line"
{
Caption = 'Acc. Sched. Chart Setup Line';
DataClassification = CustomerContent;
fields
{
/// <summary>
/// User identifier associating the chart setup line with the owning user account.
/// </summary>
field(1; "User ID"; Text[132])
{
Caption = 'User ID';
DataClassification = EndUserIdentifiableInformation;
Editable = false;
TableRelation = "Account Schedules Chart Setup"."User ID" where(Name = field(Name));
}
/// <summary>
/// Chart setup name linking this line to the parent chart configuration.
/// </summary>
field(2; Name; Text[30])
{
Caption = 'Name';
Editable = false;
TableRelation = "Account Schedules Chart Setup".Name where("User ID" = field("User ID"));
}
/// <summary>
/// Account schedule name identifying the row definition source for chart data.
/// </summary>
field(3; "Account Schedule Name"; Code[10])
{
Caption = 'Account Schedule Name';
ToolTip = 'Specifies the account schedule name.';
Editable = false;
TableRelation = "Acc. Schedule Name".Name;
}
/// <summary>
/// Line number within the account schedule identifying the specific row for chart display.
/// </summary>
field(4; "Account Schedule Line No."; Integer)
{
Caption = 'Account Schedule Line No.';
ToolTip = 'Specifies the number of the account schedule line that the chart is based on.';
Editable = false;
TableRelation = "Acc. Schedule Line"."Line No." where("Schedule Name" = field("Account Schedule Name"));
}
/// <summary>
/// Column layout name identifying the column definition source for chart data.
/// </summary>
field(5; "Column Layout Name"; Code[10])
{
Caption = 'Column Layout Name';
ToolTip = 'Specifies the name. This field is intended only for internal use.';
Editable = false;
TableRelation = "Column Layout Name".Name;
}
/// <summary>
/// Line number within the column layout identifying the specific column for chart display.
/// </summary>
field(6; "Column Layout Line No."; Integer)
{
Caption = 'Column Layout Line No.';
ToolTip = 'Specifies the line number. This field is intended only for internal use.';
Editable = false;
TableRelation = "Column Layout"."Line No." where("Column Layout Name" = field("Column Layout Name"));
}
/// <summary>
/// Original measure name before user modifications for reference and reset functionality.
/// </summary>
field(10; "Original Measure Name"; Text[111])
{
Caption = 'Original Measure Name';
ToolTip = 'Specifies the account schedule columns or lines that you select to include in the Account Schedules Chart Setup window.';
Editable = false;
}
/// <summary>
/// Display name for the measure used in chart legends and labels.
/// </summary>
field(15; "Measure Name"; Text[111])
{
Caption = 'Measure Name';
ToolTip = 'Specifies the account schedule columns or lines that the measures on the y-axis in the specific chart are based on.';
trigger OnValidate()
begin
TestField("Measure Name");
end;
}
/// <summary>
/// Text representation of the calculated measure value for display purposes.
/// </summary>
field(20; "Measure Value"; Text[30])
{
Caption = 'Measure Value';
Editable = false;
}
/// <summary>
/// Chart visualization type determining how this measure is displayed in the chart.
/// </summary>
field(40; "Chart Type"; Enum "Account Schedule Chart Type")
{
Caption = 'Chart Type';
ToolTip = 'Specifies how the account schedule values are represented graphically in the chart.';
trigger OnValidate()
var
AccountSchedulesChartSetup: Record "Account Schedules Chart Setup";
AccSchedChartSetupLine: Record "Acc. Sched. Chart Setup Line";
BusinessChartBuffer: Record "Business Chart Buffer";
ActualNumMeasures: Integer;
begin
if ("Chart Type" <> "Chart Type"::" ") and IsMeasure() then begin
AccountSchedulesChartSetup.Get("User ID", Name);
AccountSchedulesChartSetup.SetLinkToMeasureLines(AccSchedChartSetupLine);
AccSchedChartSetupLine.SetFilter("Chart Type", '<>%1', AccSchedChartSetupLine."Chart Type"::" ");
ActualNumMeasures := 0;
if AccSchedChartSetupLine.FindSet() then
repeat
if (AccSchedChartSetupLine."Account Schedule Line No." <> "Account Schedule Line No.") or
(AccSchedChartSetupLine."Column Layout Line No." <> "Column Layout Line No.")
then
ActualNumMeasures += 1;
until AccSchedChartSetupLine.Next() = 0;
if ActualNumMeasures >= BusinessChartBuffer.GetMaxNumberOfMeasures() then
BusinessChartBuffer.RaiseErrorMaxNumberOfMeasuresExceeded();
end;
end;
}
}
keys
{
key(Key1; "User ID", Name, "Account Schedule Line No.", "Column Layout Line No.")
{
Clustered = true;
}
}
fieldgroups
{
}
local procedure IsMeasure() Result: Boolean
var
AccountSchedulesChartSetup: Record "Account Schedules Chart Setup";
begin
AccountSchedulesChartSetup.Get("User ID", Name);
case AccountSchedulesChartSetup."Base X-Axis on" of
AccountSchedulesChartSetup."Base X-Axis on"::Period:
Result := true;
AccountSchedulesChartSetup."Base X-Axis on"::"Acc. Sched. Line":
if "Account Schedule Line No." = 0 then
Result := true;
AccountSchedulesChartSetup."Base X-Axis on"::"Acc. Sched. Column":
if "Column Layout Line No." = 0 then
Result := true;
end;
end;
/// <summary>
/// Returns the default chart type for account schedule chart setup lines.
/// Provides consistent default visualization when creating new chart configurations.
/// </summary>
/// <returns>Default chart type enum value for account schedule charts</returns>
procedure GetDefaultAccSchedChartType(): Enum "Account Schedule Chart Type"
begin
exit("Chart Type"::Column);
end;
}