Page 1006 Job Task Dimensions Multiple, source in 29
Source29
src/Layers/W1/BaseApp/Projects/Project/Job/JobTaskDimensionsMultiple.Page.al232 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.Projects.Project.Job;
using Microsoft.Finance.Dimension;
page 1006 "Job Task Dimensions Multiple"
{
Caption = 'Project Task Dimensions Multiple';
PageType = List;
SourceTable = "Job Task Dimension";
SourceTableTemporary = true;
layout
{
area(content)
{
repeater(Control1)
{
ShowCaption = false;
field("Dimension Code"; Rec."Dimension Code")
{
ApplicationArea = Dimensions;
trigger OnValidate()
begin
if (xRec."Dimension Code" <> '') and (xRec."Dimension Code" <> Rec."Dimension Code") then
Error(Text000, Rec.TableCaption);
end;
}
field("Dimension Value Code"; Rec."Dimension Value Code")
{
ApplicationArea = Dimensions;
}
}
}
}
actions
{
}
trigger OnAfterGetRecord()
begin
DimensionValueCodeOnFormat(Format(Rec."Dimension Value Code"));
end;
trigger OnDeleteRecord(): Boolean
begin
Rec."Multiple Selection Action" := Rec."Multiple Selection Action"::Delete;
Rec.Modify();
exit(false);
end;
trigger OnInit()
begin
CurrPage.LookupMode := true;
end;
trigger OnInsertRecord(BelowxRec: Boolean): Boolean
begin
Rec.SetRange("Dimension Code", Rec."Dimension Code");
if not Rec.Find('-') and (Rec."Dimension Code" <> '') then begin
Rec."Multiple Selection Action" := Rec."Multiple Selection Action"::Change;
Rec.Insert();
end;
Rec.SetRange("Dimension Code");
exit(false);
end;
trigger OnModifyRecord(): Boolean
begin
Rec."Multiple Selection Action" := Rec."Multiple Selection Action"::Change;
Rec.Modify();
exit(false);
end;
trigger OnOpenPage()
begin
GetDefaultDim();
end;
trigger OnQueryClosePage(CloseAction: Action): Boolean
begin
if CloseAction = ACTION::LookupOK then
LookupOKOnPush();
end;
var
TempJobTaskDim2: Record "Job Task Dimension" temporary;
TempJobTaskDim3: Record "Job Task Dimension" temporary;
TempJobTask: Record "Job Task" temporary;
TotalRecNo: Integer;
#pragma warning disable AA0074
#pragma warning disable AA0470
Text000: Label 'You cannot rename a %1.';
#pragma warning restore AA0470
Text001: Label '(Conflict)';
#pragma warning restore AA0074
local procedure SetCommonJobTaskDim()
var
JobTaskDim: Record "Job Task Dimension";
begin
Rec.SetRange("Multiple Selection Action", Rec."Multiple Selection Action"::Delete);
if Rec.Find('-') then
repeat
if TempJobTaskDim3.Find('-') then
repeat
if JobTaskDim.Get(TempJobTaskDim3."Job No.", TempJobTaskDim3."Job Task No.", Rec."Dimension Code")
then
JobTaskDim.Delete(true);
until TempJobTaskDim3.Next() = 0;
until Rec.Next() = 0;
Rec.SetRange("Multiple Selection Action", Rec."Multiple Selection Action"::Change);
if Rec.Find('-') then
repeat
if TempJobTaskDim3.Find('-') then
repeat
if JobTaskDim.Get(TempJobTaskDim3."Job No.", TempJobTaskDim3."Job Task No.", Rec."Dimension Code")
then begin
JobTaskDim."Dimension Code" := Rec."Dimension Code";
JobTaskDim."Dimension Value Code" := Rec."Dimension Value Code";
JobTaskDim.Modify(true);
end else begin
JobTaskDim.Init();
JobTaskDim."Job No." := TempJobTaskDim3."Job No.";
JobTaskDim."Job Task No." := TempJobTaskDim3."Job Task No.";
JobTaskDim."Dimension Code" := Rec."Dimension Code";
JobTaskDim."Dimension Value Code" := Rec."Dimension Value Code";
JobTaskDim.Insert(true);
end;
until TempJobTaskDim3.Next() = 0;
until Rec.Next() = 0;
end;
procedure SetMultiJobTask(var JobTask: Record "Job Task")
begin
TempJobTaskDim2.DeleteAll();
TempJobTask.DeleteAll();
if JobTask.Find('-') then
repeat
CopyJobTaskDimToJobTaskDim(JobTask."Job No.", JobTask."Job Task No.");
TempJobTask.TransferFields(JobTask);
TempJobTask.Insert();
until JobTask.Next() = 0;
end;
local procedure CopyJobTaskDimToJobTaskDim(JobNo: Code[20]; JobTaskNo: Code[20])
var
JobTaskDim: Record "Job Task Dimension";
begin
TotalRecNo := TotalRecNo + 1;
TempJobTaskDim3."Job No." := JobNo;
TempJobTaskDim3."Job Task No." := JobTaskNo;
TempJobTaskDim3.Insert();
JobTaskDim.SetRange("Job No.", JobNo);
JobTaskDim.SetRange("Job Task No.", JobTaskNo);
if JobTaskDim.Find('-') then
repeat
TempJobTaskDim2 := JobTaskDim;
TempJobTaskDim2.Insert();
until JobTaskDim.Next() = 0;
end;
local procedure GetDefaultDim()
var
Dim: Record Dimension;
RecNo: Integer;
begin
Rec.Reset();
Rec.DeleteAll();
if Dim.Find('-') then
repeat
RecNo := 0;
TempJobTaskDim2.SetRange("Dimension Code", Dim.Code);
Rec.SetRange("Dimension Code", Dim.Code);
if TempJobTaskDim2.Find('-') then
repeat
if Rec.Find('-') then begin
if Rec."Dimension Value Code" <> TempJobTaskDim2."Dimension Value Code" then
if (Rec."Multiple Selection Action" <> 10) and
(Rec."Multiple Selection Action" <> 21)
then begin
Rec."Multiple Selection Action" :=
Rec."Multiple Selection Action" + 10;
Rec."Dimension Value Code" := '';
end;
Rec.Modify();
RecNo := RecNo + 1;
end else begin
Rec := TempJobTaskDim2;
Rec.Insert();
RecNo := RecNo + 1;
end;
until TempJobTaskDim2.Next() = 0;
if Rec.Find('-') and (RecNo <> TotalRecNo) then
if (Rec."Multiple Selection Action" <> 10) and
(Rec."Multiple Selection Action" <> 21)
then begin
Rec."Multiple Selection Action" :=
Rec."Multiple Selection Action" + 10;
Rec."Dimension Value Code" := '';
Rec.Modify();
end;
until Dim.Next() = 0;
Rec.Reset();
Rec.SetCurrentKey("Dimension Code");
Rec.SetFilter("Multiple Selection Action", '<>%1', Rec."Multiple Selection Action"::Delete)
end;
local procedure LookupOKOnPush()
begin
SetCommonJobTaskDim();
end;
local procedure DimensionValueCodeOnFormat(Text: Text[1024])
begin
if Rec."Dimension Code" <> '' then
if (Rec."Multiple Selection Action" = 10) or
(Rec."Multiple Selection Action" = 21)
then
Text := Text001;
end;
}