Page 9247 Abs. Overview by Period Matrix, source in 29
Source29
src/Layers/W1/BaseApp/HumanResources/Absence/AbsOverviewbyPeriodMatrix.Page.al524 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.HumanResources.Absence;
using Microsoft.Foundation.Enums;
using Microsoft.HumanResources.Employee;
using System.Utilities;
page 9247 "Abs. Overview by Period Matrix"
{
Caption = 'Abs. Overview by Period Matrix';
DataCaptionExpression = '';
Editable = false;
LinksAllowed = false;
PageType = List;
SourceTable = Employee;
layout
{
area(content)
{
repeater(Control1)
{
ShowCaption = false;
field("No."; Rec."No.")
{
ApplicationArea = BasicHR;
}
field("Full Name"; Rec.FullName())
{
ApplicationArea = BasicHR;
Caption = 'Full Name';
ToolTip = 'Specifies the name of resource.';
}
field(Field1; MATRIX_CellData[1])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[1];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(1);
end;
}
field(Field2; MATRIX_CellData[2])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[2];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(2);
end;
}
field(Field3; MATRIX_CellData[3])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[3];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(3);
end;
}
field(Field4; MATRIX_CellData[4])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[4];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(4);
end;
}
field(Field5; MATRIX_CellData[5])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[5];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(5);
end;
}
field(Field6; MATRIX_CellData[6])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[6];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(6);
end;
}
field(Field7; MATRIX_CellData[7])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[7];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(7);
end;
}
field(Field8; MATRIX_CellData[8])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[8];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(8);
end;
}
field(Field9; MATRIX_CellData[9])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[9];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(9);
end;
}
field(Field10; MATRIX_CellData[10])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[10];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(10);
end;
}
field(Field11; MATRIX_CellData[11])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[11];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(11);
end;
}
field(Field12; MATRIX_CellData[12])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[12];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(12);
end;
}
field(Field13; MATRIX_CellData[13])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[13];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(13);
end;
}
field(Field14; MATRIX_CellData[14])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[14];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(14);
end;
}
field(Field15; MATRIX_CellData[15])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[15];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(15);
end;
}
field(Field16; MATRIX_CellData[16])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[16];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(16);
end;
}
field(Field17; MATRIX_CellData[17])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[17];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(17);
end;
}
field(Field18; MATRIX_CellData[18])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[18];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(18);
end;
}
field(Field19; MATRIX_CellData[19])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[19];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(19);
end;
}
field(Field20; MATRIX_CellData[20])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[20];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(20);
end;
}
field(Field21; MATRIX_CellData[21])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[21];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(21);
end;
}
field(Field22; MATRIX_CellData[22])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[22];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(22);
end;
}
field(Field23; MATRIX_CellData[23])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[23];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(23);
end;
}
field(Field24; MATRIX_CellData[24])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[24];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(24);
end;
}
field(Field25; MATRIX_CellData[25])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[25];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(25);
end;
}
field(Field26; MATRIX_CellData[26])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[26];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(26);
end;
}
field(Field27; MATRIX_CellData[27])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[27];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(27);
end;
}
field(Field28; MATRIX_CellData[28])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[28];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(28);
end;
}
field(Field29; MATRIX_CellData[29])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[29];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(29);
end;
}
field(Field30; MATRIX_CellData[30])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[30];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(30);
end;
}
field(Field31; MATRIX_CellData[31])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[31];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(31);
end;
}
field(Field32; MATRIX_CellData[32])
{
AutoFormatType = 0;
ApplicationArea = BasicHR;
BlankZero = true;
CaptionClass = '3,' + MATRIX_ColumnCaption[32];
DecimalPlaces = 0 : 5;
trigger OnDrillDown()
begin
MatrixOnDrillDown(32);
end;
}
}
}
}
actions
{
}
trigger OnAfterGetRecord()
var
MATRIX_CurrentColumnOrdinal: Integer;
MATRIX_NoOfColumns: Integer;
begin
MATRIX_CurrentColumnOrdinal := 1;
MATRIX_NoOfColumns := ArrayLen(MATRIX_CellData);
while MATRIX_CurrentColumnOrdinal <= MATRIX_NoOfColumns do begin
MATRIX_OnAfterGetRecord(MATRIX_CurrentColumnOrdinal);
MATRIX_CurrentColumnOrdinal := MATRIX_CurrentColumnOrdinal + 1;
end;
end;
var
MatrixRecords: array[32] of Record Date;
AbsenceAmountType: Enum "Analysis Amount Type";
MATRIX_CellData: array[32] of Decimal;
MATRIX_ColumnCaption: array[32] of Text[1024];
CauseOfAbsenceFilter: Code[10];
local procedure SetDateFilter(ColumnID: Integer)
begin
if AbsenceAmountType = AbsenceAmountType::"Net Change" then
if MatrixRecords[ColumnID]."Period Start" = MatrixRecords[ColumnID]."Period End" then
Rec.SetRange("Date Filter", MatrixRecords[ColumnID]."Period Start")
else
Rec.SetRange("Date Filter", MatrixRecords[ColumnID]."Period Start", MatrixRecords[ColumnID]."Period End")
else
Rec.SetRange("Date Filter", 0D, MatrixRecords[ColumnID]."Period End");
end;
procedure LoadMatrix(NewMatrixColumns: array[32] of Text[1024]; var NewMatrixRecords: array[32] of Record Date; NewCauseOfAbsenceFilter: Code[10]; NewAmountType: Enum "Analysis Amount Type")
var
i: Integer;
begin
CopyArray(MATRIX_ColumnCaption, NewMatrixColumns, 1);
for i := 1 to ArrayLen(MatrixRecords) do
MatrixRecords[i].Copy(NewMatrixRecords[i]);
CauseOfAbsenceFilter := NewCauseOfAbsenceFilter;
AbsenceAmountType := NewAmountType;
end;
local procedure MatrixOnDrillDown(ColumnID: Integer)
var
EmployeeAbsence: Record "Employee Absence";
begin
SetDateFilter(ColumnID);
EmployeeAbsence.SetRange("Employee No.", Rec."No.");
EmployeeAbsence.SetFilter("Cause of Absence Code", CauseOfAbsenceFilter);
EmployeeAbsence.SetFilter("From Date", Format(Rec."Date Filter"));
PAGE.Run(0, EmployeeAbsence);
end;
local procedure MATRIX_OnAfterGetRecord(ColumnID: Integer)
begin
SetDateFilter(ColumnID);
Rec.SetFilter("Cause of Absence Filter", CauseOfAbsenceFilter);
Rec.CalcFields("Total Absence (Base)");
MATRIX_CellData[ColumnID] := Rec."Total Absence (Base)";
end;
}