Report 5068 Opportunity - Details
- App
- Base Application
- Namespace
- Microsoft.CRM.Reports
- Versions
- 17-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/CRM/Reports/OpportunityDetails.Report.al324 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.Reports;
using Microsoft.CRM.Opportunity;
using Microsoft.CRM.Task;
report 5068 "Opportunity - Details"
{
ApplicationArea = RelationshipMgmt;
Caption = 'Opportunity - Details';
UsageCategory = ReportsAndAnalysis;
WordMergeDataItem = Opportunity;
DefaultRenderingLayout = RDLCLayout;
dataset
{
dataitem(Opportunity; Opportunity)
{
RequestFilterFields = "No.";
column(TodayFormatted; Format(Today, 0, 4))
{
}
column(CompanyName; COMPANYPROPERTY.DisplayName())
{
}
column(Filter_Opportunity; TableCaption + OppFilter)
{
}
column(OppFilter; OppFilter)
{
}
column(Desc_Opportunity; TableCaption + ': ' + "No." + ', ' + Description)
{
}
column(DateClosed_Opp; Format("Date Closed"))
{
}
column(No_Opp; "No.")
{
}
column(CurrReportPageNoCaption; CurrReportPageNoCaptionLbl)
{
}
column(OpportunityDetailsCaption; OpportunityDetailsCaptionLbl)
{
}
column(OpportunityDateClosedCaption; OpportunityDateClosedCaptionLbl)
{
}
dataitem(PreTodo; "To-do")
{
DataItemLink = "Opportunity No." = field("No.");
DataItemTableView = sorting("Opportunity No.", Date, Closed) order(ascending) where("Opportunity Entry No." = const(0), "System To-do Type" = filter(Team | Organizer));
column(Status_Pretodo; Status)
{
IncludeCaption = true;
}
column(Date_PreTodo; Format(Date))
{
}
column(Desc_PreTodo; Description)
{
IncludeCaption = true;
}
column(Priority_Pretodo; Priority)
{
IncludeCaption = true;
}
column(Type_PreTodo; Type)
{
IncludeCaption = true;
}
column(No_PreTodo; "No.")
{
}
column(InitialTasksCaption; InitialTasksCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
if ("Team Code" <> '') and ("System To-do Type" <> "System To-do Type"::Team) then
CurrReport.Skip();
end;
}
dataitem("Opportunity Entry"; "Opportunity Entry")
{
DataItemLink = "Opportunity No." = field("No.");
DataItemTableView = sorting("Opportunity No.") order(ascending) where("Sales Cycle Stage" = filter(<> 0));
column(SalesCycleStage_OppEntry; "Sales Cycle Stage")
{
}
column(Desc_SalesCycleStage; SalesCycleStage.Description)
{
}
column(DateChange_OppEntry; Format("Date of Change"))
{
}
column(Estimated_OppEntry; Format("Estimated Close Date"))
{
}
column(Active_OppEntry; Active)
{
IncludeCaption = true;
}
column(QuoteFormat_OppEntry; Format(SalesCycleStage."Quote Required"))
{
}
column(Skip2_SalesCycleStage; Format(SalesCycleStage."Allow Skip"))
{
}
column(Active2_OppEntry; Format(Active))
{
}
column(StageCaption; StageCaptionLbl)
{
}
column(SalesCycleStageDescriptionCaption; SalesCycleStageDescriptionCaptionLbl)
{
}
column(SalesCycleStageQuoteRequiredCaption; SalesCycleStageQuoteRequiredCaptionLbl)
{
}
column(SalesCycleStageAllowSkipCaption; SalesCycleStageAllowSkipCaptionLbl)
{
}
column(OpportunityEntryDateofChangeCaption; OpportunityEntryDateofChangeCaptionLbl)
{
}
column(OpportunityEntryEstimatedCloseDateCaption; OpportunityEntryEstimatedCloseDateCaptionLbl)
{
}
dataitem("To-do"; "To-do")
{
DataItemLink = "Opportunity No." = field("Opportunity No."), "Opportunity Entry No." = field("Entry No.");
DataItemTableView = sorting("Opportunity No.", Date, Closed) order(ascending) where("System To-do Type" = filter(Team | Organizer));
column(Status_Todo; Status)
{
IncludeCaption = true;
}
column(Date_Todo; Format(Date))
{
}
column(Desc_Todo; Description)
{
IncludeCaption = true;
}
column(Priority_Todo; Priority)
{
IncludeCaption = true;
}
column(Type_Todo; Type)
{
IncludeCaption = true;
}
column(No_Todo; "No.")
{
}
trigger OnAfterGetRecord()
begin
if ("Team Code" <> '') and ("System To-do Type" <> "System To-do Type"::Team) then
CurrReport.Skip();
if PlannedStartingDate = 0D then
PlannedStartingDate := Date;
end;
}
trigger OnAfterGetRecord()
begin
if SalesCycleStage.Get("Sales Cycle Code", "Sales Cycle Stage") then
CurrStage := "Sales Cycle Stage";
if not ("Sales Cycle Stage" = LastSalesCycleStage) then
PlannedStartingDate := 0D;
LastSalesCycleStage := "Sales Cycle Stage";
end;
}
dataitem("Sales Cycle Stage"; "Sales Cycle Stage")
{
DataItemLink = "Sales Cycle Code" = field("Sales Cycle Code");
DataItemTableView = sorting("Sales Cycle Code", Stage);
PrintOnlyIfDetail = true;
column(Stage_SalesCycleStage; Stage)
{
IncludeCaption = true;
}
column(Quote2_SalesCycleStage; "Quote Required")
{
IncludeCaption = true;
}
column(Skip3_SalesCycleStage; "Allow Skip")
{
IncludeCaption = true;
}
column(Desc_SalescCycleStage; Description)
{
IncludeCaption = true;
}
column(Quote_SalesCycleStage; Format("Quote Required"))
{
}
column(Skip1_SalesCycleStage; Format("Allow Skip"))
{
}
dataitem("Activity Step"; "Activity Step")
{
DataItemLink = "Activity Code" = field("Activity Code");
DataItemTableView = sorting("Activity Code", "Step No.");
column(Desc_ActivityStep; Description)
{
IncludeCaption = true;
}
column(Priority_ActivityStep; Priority)
{
IncludeCaption = true;
}
column(Type_ActivityStep; Type)
{
IncludeCaption = true;
}
column(StartDate_ActivityStep; Format(ActivityStartDate))
{
}
column(PlannedActivityStatus; SelectStr(ActivityStatus + 1, Text001))
{
}
column(StepNo_ActivityStep; "Step No.")
{
}
column(StatusCaption; StatusCaptionLbl)
{
}
column(ActivityStartDateCaption; ActivityStartDateCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
ActivityStartDate := CalcDate("Date Formula", StageStartDate);
end;
}
trigger OnAfterGetRecord()
begin
if PlannedStartingDate <> 0D then
StageStartDate := CalcDate("Date Formula", PlannedStartingDate);
PlannedStartingDate := StageStartDate;
end;
trigger OnPreDataItem()
begin
SetFilter(Stage, '>%1', CurrStage);
if CurrStage = 0 then
PlannedStartingDate := WorkDate();
end;
}
}
}
requestpage
{
AboutTitle = 'About Opportunity - Details';
AboutText = 'Get an overview of sales stages, to-dos, and planned to-dos for an opportunity.';
layout
{
}
actions
{
}
}
rendering
{
layout(RDLCLayout)
{
Type = RDLC;
LayoutFile = './CRM/Reports/OpportunityDetails.rdlc';
Summary = 'Report layout made in the legacy RDLC format. Use an RDLC editor to modify the layout.';
}
}
labels
{
PreTodoDateCaption = 'Starting Date';
PreTodoNoCaption = 'To-do No.';
}
trigger OnPreReport()
begin
OppFilter := Opportunity.GetFilters();
end;
var
SalesCycleStage: Record "Sales Cycle Stage";
OppFilter: Text;
StageStartDate: Date;
ActivityStartDate: Date;
ActivityStatus: Option Planned;
CurrStage: Integer;
#pragma warning disable AA0074
Text001: Label 'Planned';
#pragma warning restore AA0074
LastSalesCycleStage: Integer;
PlannedStartingDate: Date;
CurrReportPageNoCaptionLbl: Label 'Page';
OpportunityDetailsCaptionLbl: Label 'Opportunity - Details';
OpportunityDateClosedCaptionLbl: Label 'Date Closed';
InitialTasksCaptionLbl: Label 'Initial Tasks';
StageCaptionLbl: Label 'Stage';
SalesCycleStageDescriptionCaptionLbl: Label 'Description';
SalesCycleStageQuoteRequiredCaptionLbl: Label 'Quote Required';
SalesCycleStageAllowSkipCaptionLbl: Label 'Allow Skip';
OpportunityEntryDateofChangeCaptionLbl: Label 'Date of Change';
OpportunityEntryEstimatedCloseDateCaptionLbl: Label 'Estimated Close Date';
StatusCaptionLbl: Label 'Status';
ActivityStartDateCaptionLbl: Label 'Date';
}