Table 8364 Dimension Perspective Line
- App
- Base Application
- Namespace
- Microsoft.Finance.FinancialReports
- Versions
- 28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Finance/FinancialReports/DimensionPerspectiveLine.Table.al241 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 Microsoft.Finance.Analysis;
using Microsoft.Finance.Consolidation;
using Microsoft.Finance.Dimension;
using Microsoft.Finance.GeneralLedger.Setup;
table 8364 "Dimension Perspective Line"
{
Caption = 'Dimension Perspective Line';
DataClassification = CustomerContent;
LookupPageId = "Dimension Perspective";
fields
{
field(1; Name; Code[10])
{
Caption = 'Name';
DataClassification = CustomerContent;
TableRelation = "Dimension Perspective Name";
ToolTip = 'Specifies the name of the financial report dimension perspective.';
NotBlank = true;
}
field(2; "Line No."; Integer)
{
Caption = 'Line No.';
DataClassification = SystemMetadata;
ToolTip = 'Specifies the line number for the financial report perspective.';
}
field(4; "Perspective Header"; Text[30])
{
Caption = 'Perspective Header';
DataClassification = CustomerContent;
ToolTip = 'Specifies a header for the perspective.';
NotBlank = true;
}
field(7; "Business Unit Totaling"; Text[80])
{
Caption = 'Business Unit Totaling';
DataClassification = CustomerContent;
TableRelation = "Business Unit";
ToolTip = 'Specifies which business unit amounts will be totaled on this perspective.';
ValidateTableRelation = false;
}
field(8; "Dimension 1 Totaling"; Text[80])
{
AccessByPermission = TableData Dimension = R;
Caption = 'Dimension 1 Totaling';
DataClassification = CustomerContent;
CaptionClass = GetCaptionClass(1);
ToolTip = 'Specifies which dimension value amounts will be totaled on this perspective.';
trigger OnLookup()
begin
LookUpDimFilter(1, Rec."Dimension 1 Totaling");
end;
}
field(9; "Dimension 2 Totaling"; Text[80])
{
AccessByPermission = TableData Dimension = R;
DataClassification = CustomerContent;
Caption = 'Dimension 2 Totaling';
CaptionClass = GetCaptionClass(2);
ToolTip = 'Specifies which dimension value amounts will be totaled on this perspective.';
trigger OnLookup()
begin
LookUpDimFilter(2, Rec."Dimension 2 Totaling");
end;
}
field(10; "Dimension 3 Totaling"; Text[80])
{
AccessByPermission = TableData Dimension = R;
DataClassification = CustomerContent;
Caption = 'Dimension 3 Totaling';
CaptionClass = GetCaptionClass(3);
ToolTip = 'Specifies which dimension value amounts will be totaled on this perspective.';
trigger OnLookup()
begin
LookUpDimFilter(3, Rec."Dimension 3 Totaling");
end;
}
field(11; "Dimension 4 Totaling"; Text[80])
{
AccessByPermission = TableData Dimension = R;
Caption = 'Dimension 4 Totaling';
CaptionClass = GetCaptionClass(4);
ToolTip = 'Specifies which dimension value amounts will be totaled on this perspective.';
trigger OnLookup()
begin
LookUpDimFilter(4, Rec."Dimension 4 Totaling");
end;
}
field(12; "Dimension 5 Totaling"; Text[80])
{
AccessByPermission = TableData Dimension = R;
DataClassification = CustomerContent;
Caption = 'Dimension 5 Totaling';
CaptionClass = GetCaptionClass(5);
ToolTip = 'Specifies which dimension value amounts will be totaled on this perspective.';
trigger OnLookup()
begin
LookUpDimFilter(5, Rec."Dimension 5 Totaling");
end;
}
field(13; "Dimension 6 Totaling"; Text[80])
{
AccessByPermission = TableData Dimension = R;
DataClassification = CustomerContent;
Caption = 'Dimension 6 Totaling';
CaptionClass = GetCaptionClass(6);
ToolTip = 'Specifies which dimension value amounts will be totaled on this perspective.';
trigger OnLookup()
begin
LookUpDimFilter(6, Rec."Dimension 6 Totaling");
end;
}
field(14; "Dimension 7 Totaling"; Text[80])
{
AccessByPermission = TableData Dimension = R;
DataClassification = CustomerContent;
Caption = 'Dimension 7 Totaling';
CaptionClass = GetCaptionClass(7);
ToolTip = 'Specifies which dimension value amounts will be totaled on this perspective.';
trigger OnLookup()
begin
LookUpDimFilter(7, Rec."Dimension 7 Totaling");
end;
}
field(15; "Dimension 8 Totaling"; Text[80])
{
AccessByPermission = TableData Dimension = R;
DataClassification = CustomerContent;
Caption = 'Dimension 8 Totaling';
CaptionClass = GetCaptionClass(8);
ToolTip = 'Specifies which dimension value amounts will be totaled on this perspective.';
trigger OnLookup()
begin
LookUpDimFilter(8, Rec."Dimension 8 Totaling");
end;
}
}
keys
{
key(PK; Name, "Line No.")
{
Clustered = true;
}
}
trigger OnInsert()
begin
TestField("Perspective Header");
end;
var
AnalysisView: Record "Analysis View";
GLSetup: Record "General Ledger Setup";
DimPerspectiveName: Record "Dimension Perspective Name";
DimensionCodes: array[8] of Text[20];
HasGLSetup: Boolean;
DimensionTxt: Label '1,5,%1,, Totaling', Comment = '%1 = Dimension Code';
DimensionGenericTxt: Label '1,5,,Dimension %1 Totaling', Comment = '%1 = Dimension No.';
MissingAnalysisViewMsg: Label 'The %1 refers to %2 %3, which does not exist. The field %4 on table %1 has now been deleted.', Comment = '%1 = Dimension Perspective Name, %2 = Analysis View, %3 = Analysis View Name, %4 = Analysis View Field';
local procedure LookUpDimFilter(DimNo: Integer; var Result: Text[80])
var
DimValue: Record "Dimension Value";
DimValueList: Page "Dimension Value List";
begin
GetDimensionCodes();
DimValue.SetRange("Dimension Code", DimensionCodes[DimNo]);
if DimValue.GetFilter("Dimension Code") = '' then
exit;
DimValueList.LookupMode(true);
DimValueList.SetTableView(DimValue);
if DimValueList.RunModal() = Action::LookupOK then begin
DimValueList.GetRecord(DimValue);
Result := CopyStr(DimValueList.GetSelectionFilter(), 1, MaxStrLen(Result));
end;
end;
local procedure GetCaptionClass(DimNo: Integer) Result: Text[250]
begin
GetDimensionCodes();
Result := DimensionCodes[DimNo] = '' ?
StrSubstNo(DimensionGenericTxt, DimNo) :
StrSubstNo(DimensionTxt, DimensionCodes[DimNo]);
end;
local procedure GetDimensionCodes()
begin
GetDefinitionName();
if DimPerspectiveName."Analysis View Name" <> '' then
if DimPerspectiveName."Analysis View Name" <> AnalysisView.Code then
if not AnalysisView.Get(DimPerspectiveName."Analysis View Name") then begin
Message(MissingAnalysisViewMsg, DimPerspectiveName.TableCaption(),
AnalysisView.TableCaption(), DimPerspectiveName."Analysis View Name",
DimPerspectiveName.FieldCaption("Analysis View Name"));
DimPerspectiveName."Analysis View Name" := '';
DimPerspectiveName.Modify();
end;
if DimPerspectiveName."Analysis View Name" = '' then begin
if not HasGLSetup then begin
GLSetup.Get();
HasGLSetup := true;
end;
DimensionCodes[1] := GLSetup."Global Dimension 1 Code";
DimensionCodes[2] := GLSetup."Global Dimension 2 Code";
DimensionCodes[3] := GLSetup."Shortcut Dimension 3 Code";
DimensionCodes[4] := GLSetup."Shortcut Dimension 4 Code";
DimensionCodes[5] := GLSetup."Shortcut Dimension 5 Code";
DimensionCodes[6] := GLSetup."Shortcut Dimension 6 Code";
DimensionCodes[7] := GLSetup."Shortcut Dimension 7 Code";
DimensionCodes[8] := GLSetup."Shortcut Dimension 8 Code";
end else begin
Clear(DimensionCodes);
DimensionCodes[1] := AnalysisView."Dimension 1 Code";
DimensionCodes[2] := AnalysisView."Dimension 2 Code";
DimensionCodes[3] := AnalysisView."Dimension 3 Code";
DimensionCodes[4] := AnalysisView."Dimension 4 Code";
end;
end;
local procedure GetDefinitionName()
begin
if Name <> DimPerspectiveName.Name then
DimPerspectiveName.Get(Name);
end;
}