Page 863 CF Entries Dim. Matrix, source in 29
Source29
src/Layers/W1/BaseApp/CashFlow/Forecast/CFEntriesDimMatrix.Page.al727 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.CashFlow.Forecast;
using Microsoft.CashFlow.Account;
using Microsoft.Finance.Dimension;
page 863 "CF Entries Dim. Matrix"
{
Caption = 'CF Forcst. Entries Dim. Overv. M.';
DataCaptionExpression = GetCaption();
DeleteAllowed = false;
Editable = false;
InsertAllowed = false;
LinksAllowed = false;
PageType = List;
SourceTable = "Cash Flow Forecast Entry";
layout
{
area(content)
{
group(Disclaimer)
{
Caption = ' ';
ShowCaption = false;
Editable = false;
InstructionalText = 'AI generated suggestions may not always be accurate. Please validate results for correctness before using content provided.';
}
repeater(Control1)
{
Editable = false;
ShowCaption = false;
field("Cash Flow Date"; Rec."Cash Flow Date")
{
ApplicationArea = Suite;
ToolTip = 'Specifies the cash flow date that the entry is posted to.';
}
field("Document No."; Rec."Document No.")
{
ApplicationArea = Suite;
ToolTip = 'Specifies the document that represents the forecast entry.';
}
field("Cash Flow Forecast No."; Rec."Cash Flow Forecast No.")
{
ApplicationArea = Suite;
ToolTip = 'Specifies a number for the cash flow forecast.';
}
field("Cash Flow Account No."; Rec."Cash Flow Account No.")
{
ApplicationArea = Suite;
ToolTip = 'Specifies the number of the cash flow account that the forecast entry is posted to.';
}
field(Description; Rec.Description)
{
ApplicationArea = Suite;
ToolTip = 'Specifies a description of the cash flow forecast.';
}
field("Amount (LCY)"; Rec."Amount (LCY)")
{
ApplicationArea = Suite;
ToolTip = 'Specifies the amount of the worksheet line in LCY. Revenues are entered without a plus or minus sign. Expenses are entered with a minus sign.';
}
field("Entry No."; Rec."Entry No.")
{
ApplicationArea = Suite;
ToolTip = 'Specifies the number of the entry, as assigned from the specified number series when the entry was created.';
}
field(Field1; MATRIX_CellData[1])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[1];
Visible = Field1Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(1);
MATRIX_OnLookup(Text);
end;
}
field(Field2; MATRIX_CellData[2])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[2];
Visible = Field2Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(2);
MATRIX_OnLookup(Text);
end;
}
field(Field3; MATRIX_CellData[3])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[3];
Visible = Field3Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(3);
MATRIX_OnLookup(Text);
end;
}
field(Field4; MATRIX_CellData[4])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[4];
Visible = Field4Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(4);
MATRIX_OnLookup(Text);
end;
}
field(Field5; MATRIX_CellData[5])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[5];
Visible = Field5Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(5);
MATRIX_OnLookup(Text);
end;
}
field(Field6; MATRIX_CellData[6])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[6];
Visible = Field6Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(6);
MATRIX_OnLookup(Text);
end;
}
field(Field7; MATRIX_CellData[7])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[7];
Visible = Field7Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(7);
MATRIX_OnLookup(Text);
end;
}
field(Field8; MATRIX_CellData[8])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[8];
Visible = Field8Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(8);
MATRIX_OnLookup(Text);
end;
}
field(Field9; MATRIX_CellData[9])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[9];
Visible = Field9Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(9);
MATRIX_OnLookup(Text);
end;
}
field(Field10; MATRIX_CellData[10])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[10];
Visible = Field10Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(10);
MATRIX_OnLookup(Text);
end;
}
field(Field11; MATRIX_CellData[11])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[11];
Visible = Field11Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(11);
MATRIX_OnLookup(Text);
end;
}
field(Field12; MATRIX_CellData[12])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[12];
Visible = Field12Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(12);
MATRIX_OnLookup(Text);
end;
}
field(Field13; MATRIX_CellData[13])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[13];
Visible = Field13Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(13);
MATRIX_OnLookup(Text);
end;
}
field(Field14; MATRIX_CellData[14])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[14];
Visible = Field14Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(14);
MATRIX_OnLookup(Text);
end;
}
field(Field15; MATRIX_CellData[15])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[15];
Visible = Field15Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(15);
MATRIX_OnLookup(Text);
end;
}
field(Field16; MATRIX_CellData[16])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[16];
Visible = Field16Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(16);
MATRIX_OnLookup(Text);
end;
}
field(Field17; MATRIX_CellData[17])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[17];
Visible = Field17Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(17);
MATRIX_OnLookup(Text);
end;
}
field(Field18; MATRIX_CellData[18])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[18];
Visible = Field18Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(18);
MATRIX_OnLookup(Text);
end;
}
field(Field19; MATRIX_CellData[19])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[19];
Visible = Field19Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(19);
MATRIX_OnLookup(Text);
end;
}
field(Field20; MATRIX_CellData[20])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[20];
Visible = Field20Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(20);
MATRIX_OnLookup(Text);
end;
}
field(Field21; MATRIX_CellData[21])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[21];
Visible = Field21Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(21);
MATRIX_OnLookup(Text);
end;
}
field(Field22; MATRIX_CellData[22])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[22];
Visible = Field22Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(22);
MATRIX_OnLookup(Text);
end;
}
field(Field23; MATRIX_CellData[23])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[23];
Visible = Field23Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(23);
MATRIX_OnLookup(Text);
end;
}
field(Field24; MATRIX_CellData[24])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[24];
Visible = Field24Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(24);
MATRIX_OnLookup(Text);
end;
}
field(Field25; MATRIX_CellData[25])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[25];
Visible = Field25Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(25);
MATRIX_OnLookup(Text);
end;
}
field(Field26; MATRIX_CellData[26])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[26];
Visible = Field26Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(26);
MATRIX_OnLookup(Text);
end;
}
field(Field27; MATRIX_CellData[27])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[27];
Visible = Field27Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(27);
MATRIX_OnLookup(Text);
end;
}
field(Field28; MATRIX_CellData[28])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[28];
Visible = Field28Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(28);
MATRIX_OnLookup(Text);
end;
}
field(Field29; MATRIX_CellData[29])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[29];
Visible = Field29Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(29);
MATRIX_OnLookup(Text);
end;
}
field(Field30; MATRIX_CellData[30])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[30];
Visible = Field30Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(30);
MATRIX_OnLookup(Text);
end;
}
field(Field31; MATRIX_CellData[31])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[31];
Visible = Field31Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(31);
MATRIX_OnLookup(Text);
end;
}
field(Field32; MATRIX_CellData[32])
{
ApplicationArea = Suite;
CaptionClass = '3,' + MATRIX_ColumnCaptions[32];
Visible = Field32Visible;
trigger OnLookup(var Text: Text): Boolean
begin
MATRIX_UpdateMatrixRecord(32);
MATRIX_OnLookup(Text);
end;
}
}
}
}
actions
{
area(navigation)
{
group("&Actions")
{
Caption = '&Actions';
Image = "Action";
group(Entries)
{
Caption = 'Entries';
Image = Entries;
action(Dimensions)
{
AccessByPermission = TableData Dimension = R;
ApplicationArea = Dimensions;
Caption = 'Dimensions';
Image = Dimensions;
ShortCutKey = 'Alt+D';
ToolTip = 'View or edit dimensions, such as area, project, or department, that you can assign to sales and purchase documents to distribute costs and analyze transaction history.';
trigger OnAction()
begin
Rec.ShowDimensions();
end;
}
}
}
}
}
trigger OnAfterGetRecord()
var
MATRIX_Steps: Integer;
begin
MATRIX_CurrentColumnOrdinal := 0;
DimensionMatrix.SetPosition(MATRIX_PKFirstCaptionInSet);
if MATRIX_OnFindRecord('=') then begin
MATRIX_CurrentColumnOrdinal := 1;
repeat
MATRIX_OnAfterGetRecord();
MATRIX_Steps := MATRIX_OnNextRecord(1);
MATRIX_CurrentColumnOrdinal := MATRIX_CurrentColumnOrdinal + MATRIX_Steps;
until (MATRIX_CurrentColumnOrdinal - MATRIX_Steps = MATRIX_NoOfMatrixColumns) or (MATRIX_Steps = 0);
if MATRIX_CurrentColumnOrdinal <> 1 then begin
MATRIX_OnNextRecord(1 - MATRIX_CurrentColumnOrdinal);
MATRIX_CurrentColumnOrdinal := 1;
end;
end;
MATRIX_CurrentColumnOrdinal := MATRIX_CurrentColumnOrdinal;
end;
trigger OnFindRecord(Which: Text): Boolean
var
Found: Boolean;
begin
if RunOnTempRec then begin
TempCFForecastEntry := Rec;
Found := TempCFForecastEntry.Find(Which);
if Found then
Rec := TempCFForecastEntry;
exit(Found);
end;
exit(Rec.Find(Which));
end;
trigger OnInit()
begin
Field32Visible := true;
Field31Visible := true;
Field30Visible := true;
Field29Visible := true;
Field28Visible := true;
Field27Visible := true;
Field26Visible := true;
Field25Visible := true;
Field24Visible := true;
Field23Visible := true;
Field22Visible := true;
Field21Visible := true;
Field20Visible := true;
Field19Visible := true;
Field18Visible := true;
Field17Visible := true;
Field16Visible := true;
Field15Visible := true;
Field14Visible := true;
Field13Visible := true;
Field12Visible := true;
Field11Visible := true;
Field10Visible := true;
Field9Visible := true;
Field8Visible := true;
Field7Visible := true;
Field6Visible := true;
Field5Visible := true;
Field4Visible := true;
Field3Visible := true;
Field2Visible := true;
Field1Visible := true;
end;
trigger OnNextRecord(Steps: Integer): Integer
var
ResultSteps: Integer;
begin
if RunOnTempRec then begin
TempCFForecastEntry := Rec;
ResultSteps := TempCFForecastEntry.Next(Steps);
if ResultSteps <> 0 then
Rec := TempCFForecastEntry;
exit(ResultSteps);
end;
exit(Rec.Next(Steps));
end;
trigger OnOpenPage()
begin
MATRIX_NoOfMatrixColumns := ArrayLen(MATRIX_CellData);
SetColumnVisibility();
end;
var
CFAccount: Record "Cash Flow Account";
TempCFForecastEntry: Record "Cash Flow Forecast Entry" temporary;
DimSetEntry: Record "Dimension Set Entry";
DimensionMatrix: Record Dimension;
MATRIX_CellData: array[32] of Text[80];
MATRIX_ColumnCaptions: array[32] of Text[80];
MATRIX_PKFirstCaptionInSet: Text;
MATRIX_NoOfMatrixColumns: Integer;
MATRIX_CurrentColumnOrdinal: Integer;
MATRIX_CurrSetLength: Integer;
RunOnTempRec: Boolean;
Field1Visible: Boolean;
Field2Visible: Boolean;
Field3Visible: Boolean;
Field4Visible: Boolean;
Field5Visible: Boolean;
Field6Visible: Boolean;
Field7Visible: Boolean;
Field8Visible: Boolean;
Field9Visible: Boolean;
Field10Visible: Boolean;
Field11Visible: Boolean;
Field12Visible: Boolean;
Field13Visible: Boolean;
Field14Visible: Boolean;
Field15Visible: Boolean;
Field16Visible: Boolean;
Field17Visible: Boolean;
Field18Visible: Boolean;
Field19Visible: Boolean;
Field20Visible: Boolean;
Field21Visible: Boolean;
Field22Visible: Boolean;
Field23Visible: Boolean;
Field24Visible: Boolean;
Field25Visible: Boolean;
Field26Visible: Boolean;
Field27Visible: Boolean;
Field28Visible: Boolean;
Field29Visible: Boolean;
Field30Visible: Boolean;
Field31Visible: Boolean;
Field32Visible: Boolean;
local procedure GetCaption(): Text[250]
begin
if CFAccount."No." <> Rec."Cash Flow Account No." then
CFAccount.Get(Rec."Cash Flow Account No.");
exit(StrSubstNo('%1 %2', CFAccount."No.", CFAccount.Name));
end;
local procedure MATRIX_UpdateMatrixRecord(MATRIX_NewColumnOrdinal: Integer)
begin
MATRIX_CurrentColumnOrdinal := MATRIX_NewColumnOrdinal;
DimensionMatrix.SetPosition(MATRIX_PKFirstCaptionInSet);
MATRIX_OnFindRecord('=');
MATRIX_OnNextRecord(MATRIX_NewColumnOrdinal - 1);
end;
local procedure MATRIX_OnAfterGetRecord()
begin
if not DimSetEntry.Get(Rec."Dimension Set ID", DimensionMatrix.Code) then begin
DimSetEntry.Init();
DimSetEntry."Dimension Code" := DimensionMatrix.Code;
end;
MATRIX_CellData[MATRIX_CurrentColumnOrdinal] := Format(DimSetEntry."Dimension Value Code");
end;
local procedure MATRIX_OnFindRecord(Which: Text[1024]): Boolean
begin
exit(DimensionMatrix.Find(Which));
end;
local procedure MATRIX_OnNextRecord(Steps: Integer): Integer
begin
exit(DimensionMatrix.Next(Steps));
end;
procedure Load(NewMATRIX_Captions: array[32] of Text[80]; PKFirstCaptionInSet: Text; LengthOfCurrSet: Integer)
begin
CopyArray(MATRIX_ColumnCaptions, NewMATRIX_Captions, 1);
MATRIX_PKFirstCaptionInSet := PKFirstCaptionInSet;
MATRIX_CurrSetLength := LengthOfCurrSet;
end;
local procedure MATRIX_OnLookup(var Text: Text[1024])
var
DimVal: Record "Dimension Value";
begin
Text := DimensionMatrix.Code; // For PreCal
DimVal.SetRange("Dimension Code", DimensionMatrix.Code);
DimVal."Dimension Code" := DimSetEntry."Dimension Code";
DimVal.Code := DimSetEntry."Dimension Value Code";
PAGE.RunModal(PAGE::"Dimension Value List", DimVal);
end;
procedure SetTempCFForecastEntry(var NewCFForecastEntry: Record "Cash Flow Forecast Entry")
begin
RunOnTempRec := true;
TempCFForecastEntry.DeleteAll();
if NewCFForecastEntry.Find('-') then
repeat
TempCFForecastEntry := NewCFForecastEntry;
TempCFForecastEntry.Insert();
until NewCFForecastEntry.Next() = 0;
end;
procedure SetColumnVisibility()
begin
Field1Visible := MATRIX_CurrSetLength >= 1;
Field2Visible := MATRIX_CurrSetLength >= 2;
Field3Visible := MATRIX_CurrSetLength >= 3;
Field4Visible := MATRIX_CurrSetLength >= 4;
Field5Visible := MATRIX_CurrSetLength >= 5;
Field6Visible := MATRIX_CurrSetLength >= 6;
Field7Visible := MATRIX_CurrSetLength >= 7;
Field8Visible := MATRIX_CurrSetLength >= 8;
Field9Visible := MATRIX_CurrSetLength >= 9;
Field10Visible := MATRIX_CurrSetLength >= 10;
Field11Visible := MATRIX_CurrSetLength >= 11;
Field12Visible := MATRIX_CurrSetLength >= 12;
Field13Visible := MATRIX_CurrSetLength >= 13;
Field14Visible := MATRIX_CurrSetLength >= 14;
Field15Visible := MATRIX_CurrSetLength >= 15;
Field16Visible := MATRIX_CurrSetLength >= 16;
Field17Visible := MATRIX_CurrSetLength >= 17;
Field18Visible := MATRIX_CurrSetLength >= 18;
Field19Visible := MATRIX_CurrSetLength >= 19;
Field20Visible := MATRIX_CurrSetLength >= 20;
Field21Visible := MATRIX_CurrSetLength >= 21;
Field22Visible := MATRIX_CurrSetLength >= 22;
Field23Visible := MATRIX_CurrSetLength >= 23;
Field24Visible := MATRIX_CurrSetLength >= 24;
Field25Visible := MATRIX_CurrSetLength >= 25;
Field26Visible := MATRIX_CurrSetLength >= 26;
Field27Visible := MATRIX_CurrSetLength >= 27;
Field28Visible := MATRIX_CurrSetLength >= 28;
Field29Visible := MATRIX_CurrSetLength >= 29;
Field30Visible := MATRIX_CurrSetLength >= 30;
Field31Visible := MATRIX_CurrSetLength >= 31;
Field32Visible := MATRIX_CurrSetLength >= 32;
end;
}