Page 5096 Task List
- App
- Base Application
- Namespace
- Microsoft.CRM.Task
- Versions
- 17-28
- Source table
- 5080
Procedures, 2Events, 2Obsolete, 1
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/CRM/Task/TaskList.Page.al386 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.CRM.Task;
using Microsoft.CRM.Campaign;
using Microsoft.CRM.Comment;
using Microsoft.CRM.Contact;
using Microsoft.CRM.Interaction;
using Microsoft.CRM.Opportunity;
using Microsoft.CRM.Segment;
using Microsoft.CRM.Team;
page 5096 "Task List"
{
ApplicationArea = Basic, Suite;
Caption = 'Task List';
CardPageID = "Task Card";
DataCaptionExpression = GetCaption();
Editable = false;
PageType = List;
AboutTitle = 'About Task List';
AboutText = 'Manage and track tasks across multiple companies by assigning, prioritizing, sorting, and updating the status of work items for yourself and others, with options to link tasks to contacts, teams, campaigns, and opportunities.';
SourceTable = "To-do";
UsageCategory = Lists;
layout
{
area(content)
{
repeater(Control1)
{
Editable = false;
ShowCaption = false;
field(Closed; Rec.Closed)
{
ApplicationArea = RelationshipMgmt;
}
field(Date; Rec.Date)
{
ApplicationArea = RelationshipMgmt;
}
field(Type; Rec.Type)
{
ApplicationArea = RelationshipMgmt;
}
field(Description; Rec.Description)
{
ApplicationArea = RelationshipMgmt;
}
field(Priority; Rec.Priority)
{
ApplicationArea = RelationshipMgmt;
}
field(Status; Rec.Status)
{
ApplicationArea = RelationshipMgmt;
}
field("Organizer To-do No."; Rec."Organizer To-do No.")
{
ApplicationArea = RelationshipMgmt;
}
field("Date Closed"; Rec."Date Closed")
{
ApplicationArea = RelationshipMgmt;
}
field(Canceled; Rec.Canceled)
{
ApplicationArea = RelationshipMgmt;
}
field(Comment; Rec.Comment)
{
ApplicationArea = Comments;
}
field("Contact No."; Rec."Contact No.")
{
ApplicationArea = RelationshipMgmt;
trigger OnLookup(var Text: Text): Boolean
var
Task: Record "To-do";
Cont: Record Contact;
begin
if Rec.Type = Rec.Type::Meeting then begin
Task.SetRange("No.", Rec."No.");
PAGE.RunModal(PAGE::"Attendee Scheduling", Task);
end else begin
if Cont.Get(Rec."Contact No.") then;
if PAGE.RunModal(0, Cont) = ACTION::LookupOK then;
end;
end;
}
field("Contact Company No."; Rec."Contact Company No.")
{
ApplicationArea = RelationshipMgmt;
Visible = false;
}
field("Salesperson Code"; Rec."Salesperson Code")
{
ApplicationArea = RelationshipMgmt;
}
field("Team Code"; Rec."Team Code")
{
ApplicationArea = RelationshipMgmt;
}
field("Campaign No."; Rec."Campaign No.")
{
ApplicationArea = RelationshipMgmt;
}
field("Opportunity No."; Rec."Opportunity No.")
{
ApplicationArea = RelationshipMgmt;
}
field("No."; Rec."No.")
{
ApplicationArea = RelationshipMgmt;
}
}
group(Control55)
{
ShowCaption = false;
field("Contact Name"; Rec."Contact Name")
{
ApplicationArea = RelationshipMgmt;
Caption = 'Contact Name';
DrillDown = false;
}
field("Contact Company Name"; Rec."Contact Company Name")
{
ApplicationArea = RelationshipMgmt;
DrillDown = false;
}
}
}
area(factboxes)
{
systempart(Control1900383207; Links)
{
ApplicationArea = RecordLinks;
Visible = false;
}
systempart(Control1905767507; Notes)
{
ApplicationArea = Notes;
Visible = true;
}
}
}
actions
{
area(navigation)
{
group(Task)
{
Caption = 'Task';
Image = Task;
action("Co&mment")
{
ApplicationArea = Comments;
Caption = 'Co&mment';
Image = ViewComments;
RunObject = Page "Rlshp. Mgt. Comment Sheet";
RunPageLink = "Table Name" = const("To-do"),
"No." = field("Organizer To-do No."),
"Sub No." = const(0);
ToolTip = 'View or add comments.';
}
action("Interaction Log E&ntries")
{
ApplicationArea = RelationshipMgmt;
Caption = 'Interaction Log E&ntries';
Image = InteractionLog;
RunObject = Page "Interaction Log Entries";
RunPageLink = "To-do No." = field("Organizer To-do No.");
RunPageView = sorting("To-do No.");
ShortCutKey = 'Ctrl+F7';
ToolTip = 'View interaction log entries for the task.';
}
action("Postponed &Interactions")
{
ApplicationArea = RelationshipMgmt;
Caption = 'Postponed &Interactions';
Image = PostponedInteractions;
RunObject = Page "Postponed Interactions";
RunPageLink = "To-do No." = field("Organizer To-do No.");
RunPageView = sorting("To-do No.");
ToolTip = 'View postponed interactions for the task.';
}
action("A&ttendee Scheduling")
{
ApplicationArea = RelationshipMgmt;
Caption = 'A&ttendee Scheduling';
Image = ProfileCalender;
ToolTip = 'View the status of a scheduled meeting.';
trigger OnAction()
var
Task: Record "To-do";
begin
Task.Get(Rec."Organizer To-do No.");
PAGE.RunModal(PAGE::"Attendee Scheduling", Task);
end;
}
}
}
area(processing)
{
group("F&unctions")
{
Caption = 'F&unctions';
Image = "Action";
action("Assign Activities")
{
ApplicationArea = RelationshipMgmt;
Caption = 'Assign Activities';
Image = Allocate;
ToolTip = 'View all the tasks that have been assigned to salespeople and teams. A task can be organizing meetings, making phone calls, and so on.';
trigger OnAction()
var
TempTask: Record "To-do" temporary;
begin
TempTask.AssignActivityFromTask(Rec);
end;
}
action(MakePhoneCall)
{
ApplicationArea = RelationshipMgmt;
Caption = 'Make &Phone Call';
Image = Calls;
ToolTip = 'Call the selected contact.';
trigger OnAction()
var
TempSegmentLine: Record "Segment Line" temporary;
ContactNo: Code[20];
ContCompanyNo: Code[20];
begin
if Rec."Contact No." <> '' then
ContactNo := Rec."Contact No."
else
ContactNo := CopyStr(Rec.GetFilter("Contact No."), 1, MaxStrLen(ContactNo));
if Rec."Contact Company No." <> '' then
ContCompanyNo := Rec."Contact Company No."
else
ContCompanyNo := CopyStr(Rec.GetFilter("Contact Company No."), 1, MaxStrLen(ContCompanyNo));
if ContactNo = '' then begin
if (Rec.Type = Rec.Type::Meeting) and (Rec."Team Code" = '') then
Error(PhoneCallOnlyInAttendeeSchedulingErr);
Error(MustSelectTaskWithContactErr);
end;
TempSegmentLine."To-do No." := Rec."No.";
TempSegmentLine."Contact No." := ContactNo;
TempSegmentLine."Contact Company No." := ContCompanyNo;
TempSegmentLine."Campaign No." := Rec."Campaign No.";
TempSegmentLine."Salesperson Code" := Rec."Salesperson Code";
TempSegmentLine.CreatePhoneCall();
end;
}
action("Delete Canceled Tasks")
{
ApplicationArea = All;
Caption = 'Delete Canceled Tasks';
Image = Delete;
RunObject = Report "Delete Tasks";
}
}
action("&Create Task")
{
ApplicationArea = RelationshipMgmt;
Caption = '&Create Task';
Image = NewToDo;
ToolTip = 'Create a new task.';
trigger OnAction()
var
TempTask: Record "To-do" temporary;
begin
TempTask.CreateTaskFromTask(Rec);
end;
}
action("Edit Organizer Task")
{
ApplicationArea = RelationshipMgmt;
Caption = 'Edit Organizer Task';
Image = Edit;
RunObject = Page "Task Card";
RunPageLink = "No." = field("Organizer To-do No.");
ToolTip = 'View general information about the task such as type, description, priority and status of the task, as well as the salesperson or team the task is assigned to.';
}
}
area(Promoted)
{
group(Category_Process)
{
Caption = 'Process';
actionref("&Create Task_Promoted"; "&Create Task")
{
}
}
}
}
trigger OnAfterGetCurrRecord()
begin
Rec.CalcFields("Contact Name", "Contact Company Name");
end;
trigger OnAfterGetRecord()
begin
ContactNoOnFormat(Format(Rec."Contact No."));
end;
trigger OnFindRecord(Which: Text): Boolean
begin
RecordsFound := Rec.Find(Which);
exit(RecordsFound);
end;
var
RecordsFound: Boolean;
MultipleTxt: Label '(Multiple)';
UntitledTxt: Label 'untitled';
PhoneCallOnlyInAttendeeSchedulingErr: Label 'The Make Phone Call function for this task is available only on the Attendee Scheduling window.';
MustSelectTaskWithContactErr: Label 'You must select a task with a contact assigned to it before you can use the Make Phone Call function.';
procedure GetCaption() CaptionStr: Text
var
Campaign: Record Campaign;
Contact: Record Contact;
Contact2: Record Contact;
Opportunity: Record Opportunity;
SalespersonPurchaser: Record "Salesperson/Purchaser";
SegmentHeader: Record "Segment Header";
Team: Record Team;
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeCaption(Rec, CaptionStr, IsHandled);
if not IsHandled then begin
if Contact.Get(Rec.GetFilter("Contact Company No.")) then begin
Contact2.Get(Rec.GetFilter("Contact Company No."));
if Contact2."No." <> Contact."No." then
CaptionStr := CopyStr(Contact."No." + ' ' + Contact.Name, 1, MaxStrLen(CaptionStr));
end;
if Contact.Get(Rec.GetFilter("Contact No.")) then
CaptionStr := CopyStr(CaptionStr + ' ' + Contact."No." + ' ' + Contact.Name, 1, MaxStrLen(CaptionStr));
if SalespersonPurchaser.Get(Rec.GetFilter("Salesperson Code")) then
CaptionStr := CopyStr(CaptionStr + ' ' + SalespersonPurchaser.Code + ' ' + SalespersonPurchaser.Name, 1, MaxStrLen(CaptionStr));
if Team.Get(Rec.GetFilter("Team Code")) then
CaptionStr := CopyStr(CaptionStr + ' ' + Team.Code + ' ' + Team.Name, 1, MaxStrLen(CaptionStr));
if Campaign.Get(Rec.GetFilter("Campaign No.")) then
CaptionStr := CopyStr(CaptionStr + ' ' + Campaign."No." + ' ' + Campaign.Description, 1, MaxStrLen(CaptionStr));
if Opportunity.Get(Rec.GetFilter("Opportunity No.")) then
CaptionStr := CopyStr(CaptionStr + ' ' + Opportunity."No." + ' ' + Opportunity.Description, 1, MaxStrLen(CaptionStr));
if SegmentHeader.Get(Rec.GetFilter("Segment No.")) then
CaptionStr := CopyStr(CaptionStr + ' ' + SegmentHeader."No." + ' ' + SegmentHeader.Description, 1, MaxStrLen(CaptionStr));
if CaptionStr = '' then
CaptionStr := UntitledTxt;
end;
OnAfterGetCaption(Rec, CaptionStr);
end;
local procedure ContactNoOnFormat(Text: Text[1024])
begin
if Rec.Type = Rec.Type::Meeting then
Text := MultipleTxt;
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeCaption(var ToDo: Record "To-do"; var CaptionStr: Text; var Handled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterGetCaption(var ToDo: Record "To-do"; var CaptionStr: Text)
begin
end;
}