Report 720 Item/Vendor Catalog
- App
- Base Application
- Namespace
- Microsoft.Inventory.Reports
- Versions
- 17-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Inventory/Reports/ItemVendorCatalog.Report.al317 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.Inventory.Reports;
using Microsoft.Inventory.Item;
using Microsoft.Inventory.Item.Catalog;
using Microsoft.Pricing.Calculation;
using Microsoft.Pricing.PriceList;
using Microsoft.Purchases.Pricing;
using Microsoft.Purchases.Vendor;
report 720 "Item/Vendor Catalog"
{
ApplicationArea = Basic, Suite;
Caption = 'Item/Vendor Catalog';
ToolTip = 'View a list of the vendors for the selected items. For each combination of item and vendor, it shows direct unit cost, lead time calculation and the vendor''s item number.';
DefaultRenderingLayout = Excel;
PreviewMode = PrintLayout;
UsageCategory = ReportsAndAnalysis;
dataset
{
dataitem(Item; Item)
{
DataItemTableView = sorting("No.");
PrintOnlyIfDetail = true;
RequestFilterFields = "No.";
column(Item_TABLECAPTION__________ItemFilter; ItemFilterHeading)
{
}
column(ItemFilter; ItemFilter)
{
}
column(Item__No__; "No.")
{
}
column(Item_Description; Description)
{
IncludeCaption = true;
}
column(Item__Base_Unit_of_Measure_; "Base Unit of Measure")
{
IncludeCaption = true;
}
#if not CLEAN28
column(COMPANYNAME; COMPANYPROPERTY.DisplayName())
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(Item_Vendor_CatalogCaption; Item_Vendor_CatalogCaptionLbl)
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(CurrReport_PAGENOCaption; CurrReport_PAGENOCaptionLbl)
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(Purchase_Price__Vendor_No__Caption; ItemVend.FieldCaption("Vendor No."))
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(Vend_NameCaption; Vend_NameCaptionLbl)
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(Purchase_Price__Starting_Date_Caption; Purchase_Price__Starting_Date_CaptionLbl)
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(Purchase_Price__Direct_Unit_Cost_Caption; Direct_Unit_Cost_CaptionLbl)
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(ItemVend__Lead_Time_Calculation_Caption; ItemVend__Lead_Time_Calculation_CaptionLbl)
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(ItemVend__Vendor_Item_No__Caption; ItemVend__Vendor_Item_No__CaptionLbl)
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
column(Item__Base_Unit_of_Measure_Caption; FieldCaption("Base Unit of Measure"))
{
ObsoleteState = Pending;
ObsoleteReason = 'RDLC Only layout column. To be removed along with the RDLC layout.';
ObsoleteTag = '28.0';
}
#endif
column(ExtendedPriceFeatureEnabled; ExtendedPriceEnabled)
{
}
dataitem("Purchase Price"; "Purchase Price")
{
DataItemLink = "Item No." = field("No.");
DataItemTableView = sorting("Item No.");
column(Purchase_Price__Vendor_No__; "Vendor No.")
{
IncludeCaption = true;
}
column(Vend_Name; Vend.Name)
{
IncludeCaption = true;
}
column(Purchase_Price__Starting_Date_; Format("Starting Date"))
{
}
column(Purchase_Price__Direct_Unit_Cost_; "Direct Unit Cost")
{
AutoFormatExpression = "Currency Code";
AutoFormatType = 2;
IncludeCaption = true;
}
column(Purchase_Price__Currency_Code_; "Currency Code")
{
IncludeCaption = true;
}
column(ItemVend__Lead_Time_Calculation_; ItemVend."Lead Time Calculation")
{
}
column(ItemVend__Vendor_Item_No__; ItemVend."Vendor Item No.")
{
}
trigger OnPreDataItem()
begin
if ExtendedPriceEnabled then
CurrReport.Break();
end;
trigger OnAfterGetRecord()
begin
InitGlobals("Vendor No.", "Item No.", "Variant Code");
end;
}
dataitem(PriceListLine; "Price List Line")
{
DataItemLink = "Asset No." = field("No.");
DataItemTableView = sorting("Asset No.") where("Source Type" = const(Vendor), "Asset Type" = const(Item), Status = const(Active));
column(Price_Vendor_No; "Source No.")
{
}
column(Price_Vend_Name; Vend.Name)
{
}
column(Price_Starting_Date; Format("Starting Date"))
{
}
column(Price_Direct_Unit_Cost; "Direct Unit Cost")
{
AutoFormatExpression = "Currency Code";
AutoFormatType = 2;
}
column(Price_Currency_Code_; "Currency Code")
{
}
column(ItemVend_Lead_Time_Calculation; ItemVend."Lead Time Calculation")
{
}
column(ItemVend_Vendor_Item_No; ItemVend."Vendor Item No.")
{
}
trigger OnPreDataItem()
begin
if not ExtendedPriceEnabled then
CurrReport.Break();
end;
trigger OnAfterGetRecord()
begin
InitGlobals("Source No.", "Asset No.", "Variant Code");
end;
}
}
}
requestpage
{
AboutTitle = 'About Item/Vendor Catalog';
AboutText = 'Shows a catalog of items with vendor-specific information, including vendor numbers, item references, and prices. Use this report to review or share vendor catalogs, compare vendor offerings, and support purchasing decisions.';
layout
{
area(Content)
{
group(Options)
{
Caption = 'Options';
// Used to set a report header across multiple languages
field(RequestItemFilterHeading; ItemFilterHeading)
{
ApplicationArea = All;
Caption = 'Item Filter';
ToolTip = 'Specifies the Item Filters applied to this report.';
Visible = false;
}
}
}
}
actions
{
}
trigger OnClosePage()
begin
UpdateRequestPageFilterValues();
end;
}
rendering
{
layout(Excel)
{
Caption = 'Item/Vendor Catalog Excel';
Type = Excel;
LayoutFile = './Inventory/Reports/ItemVendorCatalog.xlsx';
Summary = 'Built in layout for the Item/Vendor Catalog Excel report.';
}
#if not CLEAN28
layout(RDLC)
{
Caption = 'Item/Vendor Catalog RDLC (Obsolete)';
Type = RDLC;
LayoutFile = './Inventory/Reports/ItemVendorCatalog.rdlc';
ObsoleteState = Pending;
ObsoleteReason = 'The RDLC layout has been replaced by an Excel layout and will be removed in a future release.';
ObsoleteTag = '28.0';
Summary = 'Built in layout for the Item/Vendor Catalog RDLC (Obsolete) report.';
}
#endif
}
labels
{
ItemVendorCatalogLbl = 'Item/Vendor Catalog';
ItemVendorCatalogPrintLbl = 'Item Vendor Catalog (Print)', MaxLength = 31, Comment = 'Excel worksheet name.';
ItemVendorCatalogAnalysisLbl = 'Item Vendor Catalog (Analysis)', MaxLength = 31, Comment = 'Excel worksheet name.';
DataRetrievedLbl = 'Data retrieved:';
ItemNoLbl = 'Item No.';
DateLbl = 'Date';
ItemVendorNoLbl = 'Item Vendor No.';
LeadTimeCalculationLbl = 'Lead Time Calculation';
// About the report labels
AboutTheReportLbl = 'About the report';
EnvironmentLbl = 'Environment';
CompanyLbl = 'Company';
UserLbl = 'User';
RunOnLbl = 'Run on';
ReportNameLbl = 'Report name';
DocumentationLbl = 'Documentation';
}
trigger OnPreReport()
var
PriceCalculationMgt: Codeunit "Price Calculation Mgt.";
begin
UpdateRequestPageFilterValues();
ExtendedPriceEnabled := PriceCalculationMgt.IsExtendedPriceCalculationEnabled();
end;
var
ItemVend: Record "Item Vendor";
Vend: Record Vendor;
ItemFilter: Text;
ItemFilterHeading: Text;
ExtendedPriceEnabled: Boolean;
#if not CLEAN28
Item_Vendor_CatalogCaptionLbl: Label 'Item/Vendor Catalog';
CurrReport_PAGENOCaptionLbl: Label 'Page';
Vend_NameCaptionLbl: Label 'Name';
Purchase_Price__Starting_Date_CaptionLbl: Label 'Date';
ItemVend__Lead_Time_Calculation_CaptionLbl: Label 'Lead Time Calculation';
ItemVend__Vendor_Item_No__CaptionLbl: Label 'Item Vendor No.';
Direct_Unit_Cost_CaptionLbl: Label 'Direct Unit Cost';
#endif
local procedure InitGlobals(VendorNo: Code[20]; ItemNo: Code[20]; VariantCode: Code[10])
begin
if VendorNo <> Vend."No." then
Vend.Get(VendorNo);
if not ItemVend.Get(VendorNo, ItemNo, VariantCode) then
ItemVend.Init();
end;
// Ensures Layout Filter Headings are up to date
local procedure UpdateRequestPageFilterValues()
begin
ItemFilter := Item.GetFilters();
if ItemFilter <> '' then
ItemFilterHeading := Item.TableCaption + ': ' + ItemFilter;
end;
}