Page 99000754 Work Center Card, source in 29
Source29
src/Layers/W1/BaseApp/Manufacturing/WorkCenter/WorkCenterCard.Page.al444 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.Manufacturing.WorkCenter;
using Microsoft.Finance.Dimension;
using Microsoft.Inventory.Location;
using Microsoft.Manufacturing.Capacity;
using Microsoft.Manufacturing.Comment;
#if not CLEAN29
using Microsoft.Manufacturing.Reports;
#endif
page 99000754 "Work Center Card"
{
Caption = 'Work Center Card';
PageType = Card;
SourceTable = "Work Center";
layout
{
area(content)
{
group(General)
{
Caption = 'General';
field("No."; Rec."No.")
{
ApplicationArea = Manufacturing;
Importance = Promoted;
trigger OnAssistEdit()
begin
if Rec.AssistEdit(xRec) then
CurrPage.Update();
end;
}
field(Name; Rec.Name)
{
ApplicationArea = Manufacturing;
Importance = Promoted;
}
field("Name 2"; Rec."Name 2")
{
ApplicationArea = Manufacturing;
Importance = Additional;
Visible = false;
}
field("Work Center Group Code"; Rec."Work Center Group Code")
{
ApplicationArea = Manufacturing;
Importance = Promoted;
}
field("Alternate Work Center"; Rec."Alternate Work Center")
{
ApplicationArea = Manufacturing;
}
field("Search Name"; Rec."Search Name")
{
ApplicationArea = Manufacturing;
}
field(Blocked; Rec.Blocked)
{
ApplicationArea = Manufacturing;
}
field("Last Date Modified"; Rec."Last Date Modified")
{
ApplicationArea = Manufacturing;
}
}
group(Posting)
{
Caption = 'Posting';
field("Direct Unit Cost"; Rec."Direct Unit Cost")
{
ApplicationArea = Manufacturing;
Importance = Promoted;
}
field("Indirect Cost %"; Rec."Indirect Cost %")
{
ApplicationArea = Manufacturing;
}
field("Overhead Rate"; Rec."Overhead Rate")
{
ApplicationArea = Manufacturing;
}
field("Unit Cost"; Rec."Unit Cost")
{
ApplicationArea = Manufacturing;
}
field("Unit Cost Calculation"; Rec."Unit Cost Calculation")
{
ApplicationArea = Manufacturing;
Importance = Promoted;
}
field("Specific Unit Cost"; Rec."Specific Unit Cost")
{
ApplicationArea = Manufacturing;
}
field("Global Dimension 1 Code"; Rec."Global Dimension 1 Code")
{
ApplicationArea = Dimensions;
}
field("Global Dimension 2 Code"; Rec."Global Dimension 2 Code")
{
ApplicationArea = Dimensions;
}
field("Subcontractor No."; Rec."Subcontractor No.")
{
ApplicationArea = Manufacturing;
}
field("Flushing Method"; Rec."Flushing Method")
{
ApplicationArea = Manufacturing;
Importance = Promoted;
}
field("Gen. Prod. Posting Group"; Rec."Gen. Prod. Posting Group")
{
ApplicationArea = Manufacturing;
Importance = Promoted;
}
}
group(Scheduling)
{
Caption = 'Scheduling';
field("Unit of Measure Code"; Rec."Unit of Measure Code")
{
ApplicationArea = Manufacturing;
Importance = Promoted;
}
field(Capacity; Rec.Capacity)
{
ApplicationArea = Manufacturing;
Importance = Promoted;
ToolTip = 'Specifies the capacity of the work center.';
}
field(Efficiency; Rec.Efficiency)
{
ApplicationArea = Manufacturing;
}
field("Consolidated Calendar"; Rec."Consolidated Calendar")
{
ApplicationArea = Manufacturing;
}
field("Shop Calendar Code"; Rec."Shop Calendar Code")
{
ApplicationArea = Planning;
Importance = Promoted;
}
field("Calendar Entries Available Until"; Rec."Calendar Entries Avail. Until")
{
ApplicationArea = Manufacturing;
Editable = false;
StyleExpr = CalendarHorizonStyleTxt;
}
field("Calendar Rounding Precision"; Rec."Calendar Rounding Precision")
{
ApplicationArea = Manufacturing;
Visible = false;
}
field("Queue Time"; Rec."Queue Time")
{
ApplicationArea = Manufacturing;
}
field("Queue Time Unit of Meas. Code"; Rec."Queue Time Unit of Meas. Code")
{
ApplicationArea = Manufacturing;
}
}
group(Warehouse)
{
Caption = 'Warehouse';
field("Location Code"; Rec."Location Code")
{
ApplicationArea = Location;
trigger OnValidate()
begin
UpdateEnabled();
end;
}
field("Open Shop Floor Bin Code"; Rec."Open Shop Floor Bin Code")
{
ApplicationArea = Warehouse;
Enabled = OpenShopFloorBinCodeEnable;
}
field("To-Production Bin Code"; Rec."To-Production Bin Code")
{
ApplicationArea = Warehouse;
Enabled = ToProductionBinCodeEnable;
}
field("From-Production Bin Code"; Rec."From-Production Bin Code")
{
ApplicationArea = Warehouse;
Enabled = FromProductionBinCodeEnable;
}
}
}
area(factboxes)
{
systempart(Control1900383207; Links)
{
ApplicationArea = RecordLinks;
Visible = false;
}
systempart(Control1905767507; Notes)
{
ApplicationArea = Notes;
Visible = true;
}
}
}
actions
{
area(navigation)
{
group("Wor&k Ctr.")
{
Caption = 'Wor&k Ctr.';
Image = WorkCenter;
action("Capacity Ledger E&ntries")
{
ApplicationArea = Manufacturing;
Caption = 'Capacity Ledger E&ntries';
Image = CapacityLedger;
RunObject = Page "Capacity Ledger Entries";
RunPageLink = "Work Center No." = field("No."),
"Posting Date" = field("Date Filter");
RunPageView = sorting("Work Center No.", "Work Shift Code", "Posting Date");
ShortCutKey = 'Ctrl+F7';
ToolTip = 'View the capacity ledger entries of the involved production order. Capacity is recorded either as time (run time, stop time, or setup time) or as quantity (scrap quantity or output quantity).';
}
action(Dimensions)
{
ApplicationArea = Dimensions;
Caption = 'Dimensions';
Image = Dimensions;
RunObject = Page "Default Dimensions";
RunPageLink = "Table ID" = const(99000754),
"No." = field("No.");
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.';
}
action("Co&mments")
{
ApplicationArea = Manufacturing;
Caption = 'Co&mments';
Image = ViewComments;
RunObject = Page "Manufacturing Comment Sheet";
RunPageLink = "No." = field("No.");
RunPageView = where("Table Name" = const("Work Center"));
ToolTip = 'View or add comments for the record.';
}
action("Lo&ad")
{
ApplicationArea = Manufacturing;
Caption = 'Lo&ad';
Image = WorkCenterLoad;
RunObject = Page "Work Center Load";
RunPageLink = "No." = field("No."),
"Work Shift Filter" = field("Work Shift Filter");
ToolTip = 'View the availability of the machine or work center, including its capacity, the allocated quantity, availability after orders, and the load in percent of its total capacity.';
}
action(Statistics)
{
ApplicationArea = Manufacturing;
Caption = 'Statistics';
Image = Statistics;
RunObject = Page "Work Center Statistics";
RunPageLink = "No." = field("No."),
"Date Filter" = field("Date Filter"),
"Work Shift Filter" = field("Work Shift Filter");
ShortCutKey = 'F7';
ToolTip = 'View statistical information, such as the value of posted entries, for the record.';
}
}
group("Pla&nning")
{
Caption = 'Pla&nning';
Image = Planning;
action("&Calendar")
{
ApplicationArea = Manufacturing;
Caption = '&Calendar';
Image = MachineCenterCalendar;
RunObject = Page "Work Center Calendar";
ToolTip = 'Open the shop calendar, for example to see the load.';
}
action("A&bsence")
{
ApplicationArea = Manufacturing;
Caption = 'A&bsence';
Image = WorkCenterAbsence;
RunObject = Page "Capacity Absence";
RunPageLink = "Capacity Type" = const("Work Center"),
"No." = field("No."),
Date = field("Date Filter");
RunPageView = sorting("Capacity Type", "No.", Date, "Starting Time");
ToolTip = 'View which working days are not available. ';
}
action("Ta&sk List")
{
ApplicationArea = Manufacturing;
Caption = 'Ta&sk List';
Image = TaskList;
RunObject = Page "Work Center Task List";
RunPageLink = "No." = field("No.");
RunPageView = sorting(Type, "No.")
where(Type = const("Work Center"),
Status = filter(.. Released),
"Routing Status" = filter(<> Finished));
ToolTip = 'View the list of operations that are scheduled for the work center.';
}
}
}
area(processing)
{
action("Calculate Work Center Calendar")
{
ApplicationArea = Manufacturing;
Caption = 'Calculate Work Center Calendar';
Image = CalcWorkCenterCalendar;
ToolTip = 'Create new calendar entries for the work center to define the available daily capacity.';
trigger OnAction()
var
WorkCenter: Record "Work Center";
CalculateWorkCenterCalendar: Report "Calculate Work Center Calendar";
begin
WorkCenter.SetRange("No.", Rec."No.");
CalculateWorkCenterCalendar.SetTableView(WorkCenter);
CalculateWorkCenterCalendar.RunModal();
end;
}
}
#if not CLEAN29
area(reporting)
{
action("Subcontractor - Dispatch List")
{
ApplicationArea = Manufacturing;
Caption = 'Subcontractor - Dispatch List (Obsolete)';
Image = "Report";
//The property 'PromotedCategory' can only be set if the property 'Promoted' is set to 'true'
//PromotedCategory = "Report";
RunObject = Report "Subcontractor - Dispatch List";
ObsoleteState = Pending;
ObsoleteReason = 'This report is obsolete. Use the "Subcontractor - Dispatch List (New)" report instead from Subcontracting app.';
ObsoleteTag = '29.0';
}
}
#endif
area(Promoted)
{
group(Category_Process)
{
Caption = 'Process', Comment = 'Generated from the PromotedActionCategories property index 1.';
actionref("Calculate Work Center Calendar_Promoted"; "Calculate Work Center Calendar")
{
}
actionref("Lo&ad_Promoted"; "Lo&ad")
{
}
actionref("&Calendar_Promoted"; "&Calendar")
{
}
actionref("A&bsence_Promoted"; "A&bsence")
{
}
}
group(Category_Report)
{
Caption = 'Report', Comment = 'Generated from the PromotedActionCategories property index 2.';
}
group(Category_Category4)
{
Caption = 'Work Center', Comment = 'Generated from the PromotedActionCategories property index 3.';
actionref(Dimensions_Promoted; Dimensions)
{
}
actionref(Statistics_Promoted; Statistics)
{
}
actionref("Co&mments_Promoted"; "Co&mments")
{
}
}
}
}
trigger OnAfterGetCurrRecord()
begin
UpdateEnabled();
end;
trigger OnAfterGetRecord()
begin
Rec.CalcFields("Calendar Entries Avail. Until");
CalendarHorizonStyleTxt := '';
if (Rec."Calendar Entries Avail. Until" <> 0D) and (Rec."Calendar Entries Avail. Until" < WorkDate()) then
CalendarHorizonStyleTxt := 'Unfavorable';
end;
trigger OnInit()
begin
FromProductionBinCodeEnable := true;
ToProductionBinCodeEnable := true;
OpenShopFloorBinCodeEnable := true;
end;
trigger OnOpenPage()
begin
OnActivateForm();
end;
var
OpenShopFloorBinCodeEnable: Boolean;
ToProductionBinCodeEnable: Boolean;
FromProductionBinCodeEnable: Boolean;
CalendarHorizonStyleTxt: Text;
local procedure UpdateEnabled()
var
Location: Record Location;
begin
if Rec."Location Code" <> '' then
Location.Get(Rec."Location Code");
OpenShopFloorBinCodeEnable := Location."Bin Mandatory";
ToProductionBinCodeEnable := Location."Bin Mandatory";
FromProductionBinCodeEnable := Location."Bin Mandatory";
end;
local procedure OnActivateForm()
begin
UpdateEnabled();
end;
}