Report 99000757 Where-Used (Top Level)
- App
- Base Application
- Namespace
- Microsoft.Manufacturing.Reports
- Versions
- 17-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Manufacturing/Reports/WhereUsedTopLevel.Report.al231 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.Reports;
using Microsoft.Inventory.Item;
using Microsoft.Manufacturing.ProductionBOM;
using System.Utilities;
report 99000757 "Where-Used (Top Level)"
{
ApplicationArea = Manufacturing;
Caption = 'Where-Used (Top Level)';
ToolTip = 'View where and in what quantities the item is used in the product structure. The report only shows information for the top-level item. For example, if item "A" is used to produce item "B", and item "B" is used to produce item "C", the report will show item B if you run this report for item A. If you run this report for item B, then item C will be shown as where-used.';
UsageCategory = ReportsAndAnalysis;
DefaultRenderingLayout = WhereUsedTopLevelExcel;
dataset
{
dataitem(Item; Item)
{
DataItemTableView = sorting("No.");
PrintOnlyIfDetail = true;
RequestFilterFields = "No.", "Search Description";
column(FormattedToday; Format(Today, 0, 4))
{
}
column(CompanyName; COMPANYPROPERTY.DisplayName())
{
}
column(CalcDateFormatted; Text000 + Format(CalculateDate))
{
}
column(CalculateDateFilter; Format(CalculateDate))
{
}
column(ItemTableCaptionItemFilter; TableCaption + ': ' + ItemFilter)
{
}
column(ItemFilter; ItemFilter)
{
}
column(No_Item; "No.")
{
IncludeCaption = true;
}
column(Description_Item; Description)
{
IncludeCaption = true;
}
column(Search_Description; "Search Description")
{
IncludeCaption = true;
}
// RDLC Only
column(WhereUsedListTopLevelCapt; WhereUsedListTopLevelCaptLbl)
{
}
// RDLC Only
column(CurrReportPageNoCapt; CurrReportPageNoCaptLbl)
{
}
// RDLC Only
column(LevelCodeCaption; LevelCodeCaptionLbl)
{
}
// RDLC Only
column(WhereUsedListItemNoCapt; WhereUsedListItemNoCaptLbl)
{
}
// RDLC Only
column(WhereUsedListDescCapt; WhereUsedListDescCaptLbl)
{
}
// RDLC Only
column(WhereUsedListQtyNeededCapt; WhereUsedListQtyNeededCaptLbl)
{
}
dataitem(BOMLoop; "Integer")
{
DataItemTableView = sorting(Number);
column(WhereUsedListItemNo; WhereUsedList."Item No.")
{
}
column(WhereUsedListDesc; WhereUsedList.Description)
{
}
column(WhereUsedListQtyNeeded; WhereUsedList."Quantity Needed")
{
DecimalPlaces = 0 : 5;
}
column(WhereUsedListLevelCode; PadStr('', WhereUsedList."Level Code", ' ') + Format(WhereUsedList."Level Code"))
{
}
column(Sequence; Sequence)
{
}
trigger OnAfterGetRecord()
begin
Sequence += 1;
if First then begin
if not WhereUsedMgt.FindRecord('-', WhereUsedList) then
CurrReport.Break();
First := false;
end else
if WhereUsedMgt.NextRecord(1, WhereUsedList) = 0 then
CurrReport.Break();
end;
trigger OnPreDataItem()
begin
First := true;
end;
}
trigger OnAfterGetRecord()
begin
WhereUsedMgt.WhereUsedFromItem(Item, CalculateDate, true);
end;
trigger OnPreDataItem()
begin
OnBeforeOnPreDataItemItem(Item);
ItemFilter := GetFilters();
end;
}
}
requestpage
{
AboutTitle = 'About Where-Used (Top Level)';
AboutText = 'Get an overview of where, and in what quantities, you use items in the product structures of other items.';
layout
{
area(content)
{
group(Options)
{
Caption = 'Options';
field(CalculateDate; CalculateDate)
{
ApplicationArea = Manufacturing;
Caption = 'Calculation Date';
ToolTip = 'Specifies the date that you want the calculation done by. Note that the date filter takes version dates into account. The program automatically enters the working date.';
}
}
}
}
actions
{
}
trigger OnInit()
begin
CalculateDate := WorkDate();
end;
}
rendering
{
layout(WhereUsedTopLevelExcel)
{
Caption = 'Where-Used (Top Level) Excel';
LayoutFile = './Manufacturing/Reports/WhereUsedTopLevel.xlsx';
Type = Excel;
Summary = 'Report layout primarily made for data analysis. Use an Excel editor to modify the layout.';
}
#if not CLEAN27
layout(WhereUsedTopLevelRDLC)
{
Caption = 'Where-Used (Top Level) RDLC';
LayoutFile = './Manufacturing/Reports/WhereUsedTopLevel.rdlc';
Type = RDLC;
ObsoleteState = Pending;
ObsoleteReason = 'The RDLC layout has been replaced by the Excel layout and will be removed in a future release.';
ObsoleteTag = '27.0';
Summary = 'Report layout made in the legacy RDLC format. Use an RDLC editor to modify the layout.';
}
#endif
}
labels
{
WhereUsedListTopLevel = 'Where-Used List (Top Level)';
// Print worksheet names
WhereUsedTopLevelPrint = 'Where-Used Top Level (Print)', MaxLength = 31, Comment = 'Excel worksheet name.';
// Analysis worksheet name
WhereUsedTopLevelAnalysis = 'Where-Used Top Level (Analysis)', MaxLength = 31, Comment = 'Excel worksheet name.';
LevelLabel = 'BOM Level';
ItemNoLabel = 'BOM Item No.';
DescLabel = 'BOM Item Description';
QtyNeededLabel = 'Exploded Quantity';
DataRetrieved = 'Data retrieved:';
// About the report labels
AboutTheReportLabel = 'About the report', MaxLength = 31, Comment = 'Excel worksheet name.';
EnvironmentLabel = 'Environment';
CompanyLabel = 'Company';
UserLabel = 'User';
RunOnLabel = 'Run on';
ReportNameLabel = 'Report name';
DocumentationLabel = 'Documentation';
}
var
WhereUsedList: Record "Where-Used Line";
WhereUsedMgt: Codeunit "Where-Used Management";
ItemFilter: Text;
CalculateDate: Date;
First: Boolean;
Sequence: Integer;
#pragma warning disable AA0074
Text000: Label 'As of ';
#pragma warning restore AA0074
// RDLC Only layout field captions. To be removed in a future release along with the RDLC layout.
WhereUsedListTopLevelCaptLbl: Label 'Where-Used List (Top Level)';
CurrReportPageNoCaptLbl: Label 'Page';
LevelCodeCaptionLbl: Label 'Level';
WhereUsedListItemNoCaptLbl: Label 'No.';
WhereUsedListDescCaptLbl: Label 'Description';
WhereUsedListQtyNeededCaptLbl: Label 'Exploded Quantity.';
[IntegrationEvent(false, false)]
local procedure OnBeforeOnPreDataItemItem(var Item: Record Item)
begin
end;
}