Report 312 Purchase Statistics
- App
- Base Application
- Namespace
- Microsoft.Purchases.Reports
- Versions
- 17-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Purchases/Reports/PurchaseStatistics.Report.al350 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.Purchases.Reports;
using Microsoft.Purchases.Vendor;
using Microsoft.Utilities;
report 312 "Purchase Statistics"
{
ApplicationArea = Basic, Suite;
Caption = 'Purchase Statistics';
ToolTip = 'View a list of amounts for purchases, invoice discount, and payment discount in LCY for each vendor.';
UsageCategory = ReportsAndAnalysis;
DefaultRenderingLayout = RDLCLayout;
dataset
{
dataitem(Vendor; Vendor)
{
RequestFilterFields = "No.", "Search Name", "Vendor Posting Group", "Currency Code";
column(COMPANYNAME; COMPANYPROPERTY.DisplayName())
{
}
column(Vendor_TABLECAPTION__________VendFilter; TableCaption + ': ' + VendFilter)
{
}
column(VendFilter; VendFilter)
{
}
column(PeriodStartDate_2_; Format(PeriodStartDate[2]))
{
}
column(PeriodStartDate_3_; Format(PeriodStartDate[3]))
{
}
column(PeriodStartDate_4_; Format(PeriodStartDate[4]))
{
}
column(PeriodStartDate_3__1; Format(PeriodStartDate[3] - 1))
{
}
column(PeriodStartDate_4__1; Format(PeriodStartDate[4] - 1))
{
}
column(PeriodStartDate_5__1; Format(PeriodStartDate[5] - 1))
{
}
column(Vendor__No__; "No.")
{
}
column(Vendor_Name; Name)
{
}
column(VendPurchLCY_1_; VendPurchLCY[1])
{
AutoFormatType = 1;
}
column(VendPurchLCY_2_; VendPurchLCY[2])
{
AutoFormatType = 1;
}
column(VendPurchLCY_3_; VendPurchLCY[3])
{
AutoFormatType = 1;
}
column(VendPurchLCY_4_; VendPurchLCY[4])
{
AutoFormatType = 1;
}
column(VendPurchLCY_5_; VendPurchLCY[5])
{
AutoFormatType = 1;
}
column(VendInvDiscAmountLCY_1_; VendInvDiscAmountLCY[1])
{
AutoFormatType = 1;
}
column(VendInvDiscAmountLCY_2_; VendInvDiscAmountLCY[2])
{
AutoFormatType = 1;
}
column(VendInvDiscAmountLCY_3_; VendInvDiscAmountLCY[3])
{
AutoFormatType = 1;
}
column(VendInvDiscAmountLCY_4_; VendInvDiscAmountLCY[4])
{
AutoFormatType = 1;
}
column(VendInvDiscAmountLCY_5_; VendInvDiscAmountLCY[5])
{
AutoFormatType = 1;
}
column(VendPaymentDiscLCY_1_; VendPaymentDiscLCY[1])
{
AutoFormatType = 1;
}
column(VendPaymentDiscLCY_2_; VendPaymentDiscLCY[2])
{
AutoFormatType = 1;
}
column(VendPaymentDiscLCY_3_; VendPaymentDiscLCY[3])
{
AutoFormatType = 1;
}
column(VendPaymentDiscLCY_4_; VendPaymentDiscLCY[4])
{
AutoFormatType = 1;
}
column(VendPaymentDiscLCY_5_; VendPaymentDiscLCY[5])
{
AutoFormatType = 1;
}
column(VendPaymentDiscTolLcy_1_; VendPaymentDiscTolLcy[1])
{
AutoFormatType = 1;
}
column(VendPaymentDiscTolLcy_2_; VendPaymentDiscTolLcy[2])
{
AutoFormatType = 1;
}
column(VendPaymentDiscTolLcy_3_; VendPaymentDiscTolLcy[3])
{
AutoFormatType = 1;
}
column(VendPaymentDiscTolLcy_4_; VendPaymentDiscTolLcy[4])
{
AutoFormatType = 1;
}
column(VendPaymentDiscTolLcy_5_; VendPaymentDiscTolLcy[5])
{
AutoFormatType = 1;
}
column(VendPaymentTolLcy_5_; VendPaymentTolLcy[5])
{
AutoFormatType = 1;
}
column(VendPaymentTolLcy_4_; VendPaymentTolLcy[4])
{
AutoFormatType = 1;
}
column(VendPaymentTolLcy_3_; VendPaymentTolLcy[3])
{
AutoFormatType = 1;
}
column(VendPaymentTolLcy_2_; VendPaymentTolLcy[2])
{
AutoFormatType = 1;
}
column(VendPaymentTolLcy_1_; VendPaymentTolLcy[1])
{
AutoFormatType = 1;
}
column(VendPurchLCY_1__Control40; VendPurchLCY[1])
{
AutoFormatType = 1;
}
column(VendInvDiscAmountLCY_1__Control46; VendInvDiscAmountLCY[1])
{
AutoFormatType = 1;
}
column(VendPaymentDiscLCY_1__Control52; VendPaymentDiscLCY[1])
{
AutoFormatType = 1;
}
column(VendPaymentDiscTolLcy_1__Control77; VendPaymentDiscTolLcy[1])
{
AutoFormatType = 1;
}
column(VendPaymentTolLcy_1__Control78; VendPaymentTolLcy[1])
{
AutoFormatType = 1;
}
column(Purchase_StatisticsCaption; Purchase_StatisticsCaptionLbl)
{
}
column(CurrReport_PAGENOCaption; CurrReport_PAGENOCaptionLbl)
{
}
column(Vendor__No__Caption; FieldCaption("No."))
{
}
column(Vendor_NameCaption; FieldCaption(Name))
{
}
column(beforeCaption; beforeCaptionLbl)
{
}
column(after___Caption; after___CaptionLbl)
{
}
column(VendPurchLCY_1_Caption; VendPurchLCY_1_CaptionLbl)
{
}
column(VendInvDiscAmountLCY_1_Caption; VendInvDiscAmountLCY_1_CaptionLbl)
{
}
column(VendPaymentDiscLCY_1_Caption; VendPaymentDiscLCY_1_CaptionLbl)
{
}
column(VendPaymentDiscTolLcy_1_Caption; VendPaymentDiscTolLcy_1_CaptionLbl)
{
}
column(VendPaymentTolLcy_1_Caption; VendPaymentTolLcy_1_CaptionLbl)
{
}
column(TotalCaption; TotalCaptionLbl)
{
}
column(VendPurchLCY_1__Control40Caption; VendPurchLCY_1__Control40CaptionLbl)
{
}
column(VendInvDiscAmountLCY_1__Control46Caption; VendInvDiscAmountLCY_1__Control46CaptionLbl)
{
}
column(VendPaymentDiscLCY_1__Control52Caption; VendPaymentDiscLCY_1__Control52CaptionLbl)
{
}
column(VendPaymentDiscTolLcy_1__Control77Caption; VendPaymentDiscTolLcy_1__Control77CaptionLbl)
{
}
column(VendPaymentTolLcy_1__Control78Caption; VendPaymentTolLcy_1__Control78CaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
PrintVend := false;
for i := 1 to 5 do begin
SetRange("Date Filter", PeriodStartDate[i], PeriodStartDate[i + 1] - 1);
CalcFields("Purchases (LCY)", "Inv. Discounts (LCY)", "Pmt. Discounts (LCY)",
"Pmt. Disc. Tolerance (LCY)", "Pmt. Tolerance (LCY)");
VendPurchLCY[i] := "Purchases (LCY)";
VendInvDiscAmountLCY[i] := "Inv. Discounts (LCY)";
VendPaymentDiscLCY[i] := "Pmt. Discounts (LCY)";
VendPaymentDiscTolLcy[i] := "Pmt. Disc. Tolerance (LCY)";
VendPaymentTolLcy[i] := "Pmt. Tolerance (LCY)";
if (VendPurchLCY[i] <> 0) or (VendInvDiscAmountLCY[i] <> 0) or (VendPaymentDiscLCY[i] <> 0) then
PrintVend := true;
end;
if not PrintVend then
CurrReport.Skip();
end;
}
}
requestpage
{
AboutTitle = 'About Purchase Statistics';
AboutText = 'Track vendor performance and ensure that your company gets the best value for money.';
SaveValues = true;
layout
{
area(content)
{
group(Options)
{
Caption = 'Options';
field("PeriodStartDate[2]"; PeriodStartDate[2])
{
ApplicationArea = Basic, Suite;
Caption = 'Starting Date';
ToolTip = 'Specifies the date from which the report or batch job processes information.';
}
field(PeriodLength; PeriodLengthReq)
{
ApplicationArea = Basic, Suite;
Caption = 'Period Length';
ToolTip = 'Specifies the period for which data is shown in the report. For example, enter "1M" for one month, "30D" for thirty days, "3Q" for three quarters, or "5Y" for five years.';
}
}
}
}
actions
{
}
trigger OnOpenPage()
begin
if PeriodStartDate[2] = 0D then
PeriodStartDate[2] := WorkDate();
if Format(PeriodLengthReq) = '' then
Evaluate(PeriodLengthReq, '<1M>');
end;
}
rendering
{
layout(RDLCLayout)
{
Type = RDLC;
LayoutFile = './Purchases/Reports/PurchaseStatistics.rdlc';
Summary = 'Report layout made in the legacy RDLC format. Use an RDLC editor to modify the layout.';
}
}
labels
{
}
trigger OnPreReport()
var
FormatDocument: Codeunit "Format Document";
begin
VendFilter := FormatDocument.GetRecordFiltersWithCaptions(Vendor);
for i := 2 to 4 do
PeriodStartDate[i + 1] := CalcDate(PeriodLengthReq, PeriodStartDate[i]);
PeriodStartDate[6] := DMY2Date(31, 12, 9999);
PeriodStartDate[1] := DMY2Date(1, 1, 0);
end;
var
PeriodLengthReq: DateFormula;
VendFilter: Text;
PeriodStartDate: array[6] of Date;
VendPurchLCY: array[5] of Decimal;
VendInvDiscAmountLCY: array[5] of Decimal;
VendPaymentDiscLCY: array[5] of Decimal;
VendPaymentDiscTolLcy: array[5] of Decimal;
VendPaymentTolLcy: array[5] of Decimal;
PrintVend: Boolean;
i: Integer;
Purchase_StatisticsCaptionLbl: Label 'Purchase Statistics';
CurrReport_PAGENOCaptionLbl: Label 'Page';
beforeCaptionLbl: Label '...Before';
after___CaptionLbl: Label 'After...';
VendPurchLCY_1_CaptionLbl: Label 'Purchases (LCY)';
VendInvDiscAmountLCY_1_CaptionLbl: Label 'Inv. Discounts (LCY)';
VendPaymentDiscLCY_1_CaptionLbl: Label 'Pmt. Discounts (LCY)';
VendPaymentDiscTolLcy_1_CaptionLbl: Label 'Pmt. Disc. Tolerance (LCY)';
VendPaymentTolLcy_1_CaptionLbl: Label 'Payment Tolerance (LCY)';
TotalCaptionLbl: Label 'Total';
VendPurchLCY_1__Control40CaptionLbl: Label 'Purchases (LCY)';
VendInvDiscAmountLCY_1__Control46CaptionLbl: Label 'Inv. Discounts (LCY)';
VendPaymentDiscLCY_1__Control52CaptionLbl: Label 'Pmt. Discounts (LCY)';
VendPaymentDiscTolLcy_1__Control77CaptionLbl: Label 'Pmt. Disc. Tolerance (LCY)';
VendPaymentTolLcy_1__Control78CaptionLbl: Label 'Payment Tolerance (LCY)';
procedure InitializeRequest(NewPeriodLength: DateFormula; NewPeriodStartDate: Date)
begin
PeriodLengthReq := NewPeriodLength;
PeriodStartDate[2] := CalcDate(PeriodLengthReq, NewPeriodStartDate);
end;
}