Report 208 Sales - Shipment, source in 29
Source29
src/Layers/W1/BaseApp/Sales/History/SalesShipment.Report.al891 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.Sales.History;
using Microsoft.Assembly.History;
using Microsoft.Bank.BankAccount;
using Microsoft.CRM.Interaction;
using Microsoft.CRM.Segment;
using Microsoft.CRM.Team;
using Microsoft.Finance.Dimension;
using Microsoft.Foundation.Address;
using Microsoft.Foundation.Company;
using Microsoft.Foundation.UOM;
using Microsoft.Inventory.Item;
using Microsoft.Inventory.Location;
using Microsoft.Inventory.Reports;
using Microsoft.Inventory.Tracking;
using Microsoft.Sales.Customer;
using Microsoft.Sales.Setup;
using Microsoft.Utilities;
using System.Email;
using System.Globalization;
using System.Utilities;
/// <summary>
/// Generates a printable document for posted sales shipments showing items shipped to customers.
/// </summary>
report 208 "Sales - Shipment"
{
Caption = 'Sales - Shipment';
PreviewMode = PrintLayout;
DefaultRenderingLayout = "SalesShipment.rdlc";
WordMergeDataItem = "Sales Shipment Header";
dataset
{
dataitem("Sales Shipment Header"; "Sales Shipment Header")
{
DataItemTableView = sorting("No.");
RequestFilterFields = "No.", "Sell-to Customer No.", "No. Printed";
RequestFilterHeading = 'Posted Sales Shipment';
column(No_SalesShptHeader; "No.")
{
}
column(PageCaption; PageCaptionCap)
{
}
dataitem(CopyLoop; "Integer")
{
DataItemTableView = sorting(Number);
dataitem(PageLoop; "Integer")
{
DataItemTableView = sorting(Number) where(Number = const(1));
column(CompanyInfo2Picture; CompanyInfo2.Picture)
{
}
column(CompanyInfo1Picture; CompanyInfo1.Picture)
{
}
column(CompanyInfo3Picture; CompanyInfo3.Picture)
{
}
column(SalesShptCopyText; StrSubstNo(Text002, CopyText))
{
}
column(ShipToAddr1; ShipToAddr[1])
{
}
column(CompanyAddr1; CompanyAddr[1])
{
}
column(ShipToAddr2; ShipToAddr[2])
{
}
column(CompanyAddr2; CompanyAddr[2])
{
}
column(ShipToAddr3; ShipToAddr[3])
{
}
column(CompanyAddr3; CompanyAddr[3])
{
}
column(ShipToAddr4; ShipToAddr[4])
{
}
column(CompanyAddr4; CompanyAddr[4])
{
}
column(ShipToAddr5; ShipToAddr[5])
{
}
column(CompanyInfoPhoneNo; CompanyInfo."Phone No.")
{
}
column(ShipToAddr6; ShipToAddr[6])
{
}
column(CompanyInfoHomePage; CompanyInfo."Home Page")
{
}
column(CompanyInfoEmail; CompanyInfo."E-Mail")
{
}
column(CompanyInfoFaxNo; CompanyInfo."Fax No.")
{
}
column(CompanyInfoVATRegtnNo; CompanyInfo."VAT Registration No.")
{
}
column(CompanyInfoGiroNo; CompanyInfo."Giro No.")
{
}
column(CompanyInfoBankName; CompanyBankAccount.Name)
{
}
column(CompanyInfoBankAccountNo; CompanyBankAccount."Bank Account No.")
{
}
column(SelltoCustNo_SalesShptHeader; "Sales Shipment Header"."Sell-to Customer No.")
{
}
column(DocDate_SalesShptHeader; Format("Sales Shipment Header"."Document Date"))
{
}
column(SalesPersonText; SalesPersonText)
{
}
column(SalesPurchPersonName; SalesPurchPerson.Name)
{
}
column(ReferenceText; ReferenceText)
{
}
column(YourRef_SalesShptHeader; "Sales Shipment Header"."Your Reference")
{
}
column(ShipToAddr7; ShipToAddr[7])
{
}
column(ShipToAddr8; ShipToAddr[8])
{
}
column(CompanyAddr5; CompanyAddr[5])
{
}
column(CompanyAddr6; CompanyAddr[6])
{
}
column(CompanyAddr7; CompanyAddr[7])
{
}
column(CompanyAddr8; CompanyAddr[8])
{
}
column(ShptDate_SalesShptHeader; Format("Sales Shipment Header"."Shipment Date"))
{
}
column(OutputNo; OutputNo)
{
}
column(ItemTrackingAppendixCaption; ItemTrackingAppendixCaptionLbl)
{
}
column(PhoneNoCaption; PhoneNoCaptionLbl)
{
}
column(VATRegNoCaption; VATRegNoCaptionLbl)
{
}
column(GiroNoCaption; GiroNoCaptionLbl)
{
}
column(BankNameCaption; BankNameCaptionLbl)
{
}
column(BankAccNoCaption; BankAccNoCaptionLbl)
{
}
column(ShipmentNoCaption; ShipmentNoCaptionLbl)
{
}
column(ShipmentDateCaption; ShipmentDateCaptionLbl)
{
}
column(HomePageCaption; HomePageCaptionLbl)
{
}
column(EmailCaption; EmailCaptionLbl)
{
}
column(DocumentDateCaption; DocumentDateCaptionLbl)
{
}
column(SelltoCustNo_SalesShptHeaderCaption; "Sales Shipment Header".FieldCaption("Sell-to Customer No."))
{
}
column(OrderNoCaption_SalesShptHeader; OurDocumentNoLbl)
{
}
column(OrderNo_SalesShptHeader; "Sales Shipment Header"."Order No.")
{
}
column(ExternalDocumentNoCaption_SalesShptHeader; PurchaseOrderNoLbl)
{
}
column(ExternalDocumentNo_SalesShptHeader; "Sales Shipment Header"."External Document No.")
{
}
dataitem(DimensionLoop1; "Integer")
{
DataItemLinkReference = "Sales Shipment Header";
DataItemTableView = sorting(Number) where(Number = filter(1 ..));
column(DimText; DimText)
{
}
column(HeaderDimensionsCaption; HeaderDimensionsCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
if Number = 1 then begin
if not DimSetEntry1.FindSet() then
CurrReport.Break();
end else
if not Continue then
CurrReport.Break();
Clear(DimText);
Continue := false;
repeat
OldDimText := DimText;
if DimText = '' then
DimText := StrSubstNo('%1 - %2', DimSetEntry1."Dimension Code", DimSetEntry1."Dimension Value Code")
else
DimText :=
StrSubstNo(
'%1; %2 - %3', DimText,
DimSetEntry1."Dimension Code", DimSetEntry1."Dimension Value Code");
if StrLen(DimText) > MaxStrLen(OldDimText) then begin
DimText := OldDimText;
Continue := true;
exit;
end;
until DimSetEntry1.Next() = 0;
end;
trigger OnPreDataItem()
begin
if not ShowInternalInfo then
CurrReport.Break();
end;
}
dataitem("Sales Shipment Line"; "Sales Shipment Line")
{
DataItemLink = "Document No." = field("No.");
DataItemLinkReference = "Sales Shipment Header";
DataItemTableView = sorting("Document No.", "Line No.");
column(Description_SalesShptLine; Description)
{
}
column(ShowInternalInfo; ShowInternalInfo)
{
}
column(ShowCorrectionLines; ShowCorrectionLines)
{
}
column(Type_SalesShptLine; Format(Type, 0, 2))
{
}
column(AsmHeaderExists; AsmHeaderExists)
{
}
column(DocumentNo_SalesShptLine; "Document No.")
{
}
column(LinNo; LinNo)
{
}
column(ItemReferenceNo_Line; "Item Reference No.")
{
}
column(ItemReferenceNo_Line_Lbl; FieldCaption("Item Reference No."))
{
}
column(Qty_SalesShptLine; Quantity)
{
}
column(UOM_SalesShptLine; "Unit of Measure")
{
}
column(No_SalesShptLine; "No.")
{
}
column(LineNo_SalesShptLine; "Line No.")
{
}
column(Description_SalesShptLineCaption; FieldCaption(Description))
{
}
column(Qty_SalesShptLineCaption; FieldCaption(Quantity))
{
}
column(UOM_SalesShptLineCaption; FieldCaption("Unit of Measure"))
{
}
column(No_SalesShptLineCaption; FieldCaption("No."))
{
}
dataitem(DimensionLoop2; "Integer")
{
DataItemTableView = sorting(Number) where(Number = filter(1 ..));
column(DimText1; DimText)
{
}
column(LineDimensionsCaption; LineDimensionsCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
if Number = 1 then begin
if not DimSetEntry2.FindSet() then
CurrReport.Break();
end else
if not Continue then
CurrReport.Break();
Clear(DimText);
Continue := false;
repeat
OldDimText := DimText;
if DimText = '' then
DimText := StrSubstNo('%1 - %2', DimSetEntry2."Dimension Code", DimSetEntry2."Dimension Value Code")
else
DimText :=
StrSubstNo(
'%1; %2 - %3', DimText,
DimSetEntry2."Dimension Code", DimSetEntry2."Dimension Value Code");
if StrLen(DimText) > MaxStrLen(OldDimText) then begin
DimText := OldDimText;
Continue := true;
exit;
end;
until DimSetEntry2.Next() = 0;
end;
trigger OnPreDataItem()
begin
if not ShowInternalInfo then
CurrReport.Break();
end;
}
dataitem(DisplayAsmInfo; "Integer")
{
DataItemTableView = sorting(Number);
column(PostedAsmLineItemNo; BlanksForIndent() + PostedAsmLine."No.")
{
}
column(PostedAsmLineDescription; BlanksForIndent() + PostedAsmLine.Description)
{
}
column(PostedAsmLineQuantity; PostedAsmLine.Quantity)
{
DecimalPlaces = 0 : 5;
}
column(PostedAsmLineUOMCode; GetUnitOfMeasureDescr(PostedAsmLine."Unit of Measure Code"))
{
}
trigger OnAfterGetRecord()
var
ItemTranslation: Record "Item Translation";
begin
if Number = 1 then
PostedAsmLine.FindSet()
else
PostedAsmLine.Next();
if ItemTranslation.Get(PostedAsmLine."No.",
PostedAsmLine."Variant Code",
"Sales Shipment Header"."Language Code")
then
PostedAsmLine.Description := ItemTranslation.Description;
end;
trigger OnPreDataItem()
begin
if not DisplayAssemblyInformation then
CurrReport.Break();
if not AsmHeaderExists then
CurrReport.Break();
PostedAsmLine.SetRange("Document No.", PostedAsmHeader."No.");
SetRange(Number, 1, PostedAsmLine.Count);
end;
}
trigger OnAfterGetRecord()
begin
LinNo := "Line No.";
if not ShowCorrectionLines and Correction then
CurrReport.Skip();
DimSetEntry2.SetRange("Dimension Set ID", "Dimension Set ID");
if DisplayAssemblyInformation then
AsmHeaderExists := AsmToShipmentExists(PostedAsmHeader);
end;
trigger OnPostDataItem()
begin
if ShowLotSN then begin
ItemTrackingDocMgt.SetRetrieveAsmItemTracking(true);
TrackingSpecCount :=
ItemTrackingDocMgt.RetrieveDocumentItemTracking(
TempTrackingSpecBuffer, "Sales Shipment Header"."No.", DATABASE::"Sales Shipment Header", 0);
ItemTrackingDocMgt.SetRetrieveAsmItemTracking(false);
end;
end;
trigger OnPreDataItem()
begin
MoreLines := Find('+');
while MoreLines and (Description = '') and ("No." = '') and (Quantity = 0) do
MoreLines := Next(-1) <> 0;
if not MoreLines then
CurrReport.Break();
SetFilter("Line No.", '<=%1', "Line No.");
end;
}
dataitem(Total; "Integer")
{
DataItemTableView = sorting(Number) where(Number = const(1));
}
dataitem(Total2; "Integer")
{
DataItemTableView = sorting(Number) where(Number = const(1));
column(BilltoCustNo_SalesShptHeader; "Sales Shipment Header"."Bill-to Customer No.")
{
}
column(CustAddr1; CustAddr[1])
{
}
column(CustAddr2; CustAddr[2])
{
}
column(CustAddr3; CustAddr[3])
{
}
column(CustAddr4; CustAddr[4])
{
}
column(CustAddr5; CustAddr[5])
{
}
column(CustAddr6; CustAddr[6])
{
}
column(CustAddr7; CustAddr[7])
{
}
column(CustAddr8; CustAddr[8])
{
}
column(BilltoAddressCaption; BilltoAddressCaptionLbl)
{
}
column(BilltoCustNo_SalesShptHeaderCaption; "Sales Shipment Header".FieldCaption("Bill-to Customer No."))
{
}
trigger OnPreDataItem()
begin
if not ShowCustAddr then
CurrReport.Break();
end;
}
dataitem(ItemTrackingLine; "Integer")
{
DataItemTableView = sorting(Number);
column(TrackingSpecBufferNo; TempTrackingSpecBuffer."Item No.")
{
}
column(TrackingSpecBufferDesc; TempTrackingSpecBuffer.Description)
{
}
column(TrackingSpecBufferLotNo; TempTrackingSpecBuffer."Lot No.")
{
}
column(TrackingSpecBufferSerNo; TempTrackingSpecBuffer."Serial No.")
{
}
column(TrackingSpecBufferQty; TempTrackingSpecBuffer."Quantity (Base)")
{
}
column(ShowTotal; ShowTotal)
{
}
column(ShowGroup; ShowGroup)
{
}
column(QuantityCaption; QuantityCaptionLbl)
{
}
column(SerialNoCaption; SerialNoCaptionLbl)
{
}
column(LotNoCaption; LotNoCaptionLbl)
{
}
column(DescriptionCaption; DescriptionCaptionLbl)
{
}
column(NoCaption; NoCaptionLbl)
{
}
dataitem(TotalItemTracking; "Integer")
{
DataItemTableView = sorting(Number) where(Number = const(1));
column(Quantity1; TotalQty)
{
}
}
trigger OnAfterGetRecord()
begin
if Number = 1 then
TempTrackingSpecBuffer.FindSet()
else
TempTrackingSpecBuffer.Next();
if not ShowCorrectionLines and TempTrackingSpecBuffer.Correction then
CurrReport.Skip();
if TempTrackingSpecBuffer.Correction then
TempTrackingSpecBuffer."Quantity (Base)" := -TempTrackingSpecBuffer."Quantity (Base)";
ShowTotal := false;
if ItemTrackingAppendix.IsStartNewGroup(TempTrackingSpecBuffer) then
ShowTotal := true;
ShowGroup := false;
if (TempTrackingSpecBuffer."Source Ref. No." <> OldRefNo) or
(TempTrackingSpecBuffer."Item No." <> OldNo)
then begin
OldRefNo := TempTrackingSpecBuffer."Source Ref. No.";
OldNo := TempTrackingSpecBuffer."Item No.";
TotalQty := 0;
end else
ShowGroup := true;
TotalQty += TempTrackingSpecBuffer."Quantity (Base)";
end;
trigger OnPreDataItem()
begin
if TrackingSpecCount = 0 then
CurrReport.Break();
SetRange(Number, 1, TrackingSpecCount);
TempTrackingSpecBuffer.SetCurrentKey(
"Source ID", "Source Type", "Source Subtype", "Source Batch Name", "Source Prod. Order Line", "Source Ref. No.");
end;
}
trigger OnPreDataItem()
begin
// Item Tracking:
if ShowLotSN then begin
TrackingSpecCount := 0;
OldRefNo := 0;
ShowGroup := false;
end;
end;
}
trigger OnAfterGetRecord()
begin
if Number > 1 then begin
CopyText := FormatDocument.GetCOPYText();
OutputNo += 1;
end;
TotalQty := 0; // Item Tracking
end;
trigger OnPostDataItem()
begin
if not IsReportInPreviewMode() then
CODEUNIT.Run(CODEUNIT::"Sales Shpt.-Printed", "Sales Shipment Header");
end;
trigger OnPreDataItem()
begin
NoOfLoops := 1 + Abs(NoOfCopies);
CopyText := '';
SetRange(Number, 1, NoOfLoops);
OutputNo := 1;
end;
}
trigger OnAfterGetRecord()
begin
CurrReport.Language := LanguageMgt.GetLanguageIdOrDefault("Language Code");
CurrReport.FormatRegion := LanguageMgt.GetFormatRegionOrDefault("Format Region");
FormatAddr.SetLanguageCode("Language Code");
FormatAddressFields("Sales Shipment Header");
FormatDocumentFields("Sales Shipment Header");
if not CompanyBankAccount.Get("Sales Shipment Header"."Company Bank Account Code") then
CompanyBankAccount.CopyBankFieldsFromCompanyInfo(CompanyInfo);
DimSetEntry1.SetRange("Dimension Set ID", "Dimension Set ID");
end;
trigger OnPostDataItem()
begin
OnAfterPostDataItem("Sales Shipment Header");
end;
}
}
requestpage
{
SaveValues = true;
layout
{
area(content)
{
group(Options)
{
Caption = 'Options';
field(NoOfCopies; NoOfCopies)
{
ApplicationArea = Basic, Suite;
Caption = 'No. of Copies';
ToolTip = 'Specifies how many copies of the document to print.';
}
field(ShowInternalInfo; ShowInternalInfo)
{
ApplicationArea = Basic, Suite;
Caption = 'Show Internal Information';
ToolTip = 'Specifies if the document shows internal information.';
}
field(LogInteraction; LogInteraction)
{
ApplicationArea = Basic, Suite;
Caption = 'Log Interaction';
Enabled = LogInteractionEnable;
ToolTip = 'Specifies if you want to record the reports that you print as interactions.';
}
field("Show Correction Lines"; ShowCorrectionLines)
{
ApplicationArea = Basic, Suite;
Caption = 'Show Correction Lines';
ToolTip = 'Specifies if the correction lines of an undoing of quantity posting will be shown on the report.';
}
field(ShowLotSN; ShowLotSN)
{
ApplicationArea = Basic, Suite;
Caption = 'Show Serial/Lot Number Appendix';
ToolTip = 'Specifies if you want to print an appendix to the sales shipment report showing the lot and serial numbers in the shipment.';
}
field(DisplayAsmInfo; DisplayAssemblyInformation)
{
ApplicationArea = Assembly;
Caption = 'Show Assembly Components';
ToolTip = 'Specifies if you want the report to include information about components that were used in linked assembly orders that supplied the item(s) being sold.';
}
}
}
}
actions
{
}
trigger OnInit()
begin
InitLogInteraction();
LogInteractionEnable := LogInteraction;
end;
}
rendering
{
layout("SalesShipment.rdlc")
{
Type = RDLC;
LayoutFile = './Sales/History/SalesShipment.rdlc';
Caption = 'Standard Sales Shipment (RDLC)';
Summary = 'The Standard Sales Shipment (RDLC) provides a detailed layout.';
}
}
labels
{
}
trigger OnInitReport()
begin
CompanyInfo.Get();
SalesSetup.Get();
FormatDocument.SetLogoPosition(SalesSetup."Logo Position on Documents", CompanyInfo1, CompanyInfo2, CompanyInfo3);
OnAfterInitReport();
end;
trigger OnPostReport()
begin
if LogInteraction and not IsReportInPreviewMode() then
if "Sales Shipment Header".FindSet() then
repeat
SegManagement.LogDocument(
5, "Sales Shipment Header"."No.", 0, 0, DATABASE::Customer, "Sales Shipment Header"."Sell-to Customer No.",
"Sales Shipment Header"."Salesperson Code", "Sales Shipment Header"."Campaign No.",
"Sales Shipment Header"."Posting Description", '');
until "Sales Shipment Header".Next() = 0;
end;
trigger OnPreReport()
begin
AsmHeaderExists := false;
OnAfterOnPreReport("Sales Shipment Header");
end;
var
SalesPurchPerson: Record "Salesperson/Purchaser";
CompanyBankAccount: Record "Bank Account";
SalesSetup: Record "Sales & Receivables Setup";
DimSetEntry1: Record "Dimension Set Entry";
DimSetEntry2: Record "Dimension Set Entry";
PostedAsmHeader: Record "Posted Assembly Header";
PostedAsmLine: Record "Posted Assembly Line";
RespCenter: Record "Responsibility Center";
ItemTrackingAppendix: Report "Item Tracking Appendix";
LanguageMgt: Codeunit Language;
FormatAddr: Codeunit "Format Address";
FormatDocument: Codeunit "Format Document";
SegManagement: Codeunit SegManagement;
ItemTrackingDocMgt: Codeunit "Item Tracking Doc. Management";
CustAddr: array[8] of Text[100];
ShipToAddr: array[8] of Text[100];
CompanyAddr: array[8] of Text[100];
SalesPersonText: Text[20];
ReferenceText: Text[80];
MoreLines: Boolean;
NoOfCopies: Integer;
OutputNo: Integer;
NoOfLoops: Integer;
TrackingSpecCount: Integer;
OldRefNo: Integer;
OldNo: Code[20];
CopyText: Text[30];
ShowCustAddr: Boolean;
DimText: Text[120];
OldDimText: Text[75];
ShowInternalInfo: Boolean;
Continue: Boolean;
LogInteraction: Boolean;
ShowCorrectionLines: Boolean;
ShowLotSN: Boolean;
ShowTotal: Boolean;
ShowGroup: Boolean;
TotalQty: Decimal;
LogInteractionEnable: Boolean;
DisplayAssemblyInformation: Boolean;
AsmHeaderExists: Boolean;
LinNo: Integer;
#pragma warning disable AA0074
Text002: Label 'Sales - Shipment %1', Comment = '%1 = Document No.';
#pragma warning restore AA0074
ItemTrackingAppendixCaptionLbl: Label 'Item Tracking - Appendix';
PhoneNoCaptionLbl: Label 'Phone No.';
VATRegNoCaptionLbl: Label 'VAT Reg. No.';
GiroNoCaptionLbl: Label 'Giro No.';
BankNameCaptionLbl: Label 'Bank';
BankAccNoCaptionLbl: Label 'Account No.';
ShipmentNoCaptionLbl: Label 'Shipment No.';
ShipmentDateCaptionLbl: Label 'Shipment Date';
HomePageCaptionLbl: Label 'Home Page';
EmailCaptionLbl: Label 'Email';
DocumentDateCaptionLbl: Label 'Document Date';
HeaderDimensionsCaptionLbl: Label 'Header Dimensions';
LineDimensionsCaptionLbl: Label 'Line Dimensions';
BilltoAddressCaptionLbl: Label 'Bill-to Address';
QuantityCaptionLbl: Label 'Quantity';
SerialNoCaptionLbl: Label 'Serial No.';
LotNoCaptionLbl: Label 'Lot No.';
DescriptionCaptionLbl: Label 'Description';
NoCaptionLbl: Label 'No.';
#pragma warning disable AA0074
#pragma warning disable AA0470
PageCaptionCap: Label 'Page %1 of %2';
#pragma warning restore AA0470
#pragma warning restore AA0074
OurDocumentNoLbl: Label 'Our Document No.';
PurchaseOrderNoLbl: Label 'Purchase Order No.';
protected var
TempTrackingSpecBuffer: Record "Tracking Specification" temporary;
CompanyInfo: Record "Company Information";
CompanyInfo1: Record "Company Information";
CompanyInfo2: Record "Company Information";
CompanyInfo3: Record "Company Information";
/// <summary>
/// Initializes the log interaction setting based on interaction template configuration.
/// </summary>
procedure InitLogInteraction()
begin
LogInteraction := SegManagement.FindInteractionTemplateCode(Enum::"Interaction Log Entry Document Type"::"Sales Shpt. Note") <> '';
end;
/// <summary>
/// Initializes the request parameters for the sales shipment report.
/// </summary>
/// <param name="NewNoOfCopies">The number of copies to print.</param>
/// <param name="NewShowInternalInfo">Specifies whether to show internal information.</param>
/// <param name="NewLogInteraction">Specifies whether to log interaction.</param>
/// <param name="NewShowCorrectionLines">Specifies whether to show correction lines.</param>
/// <param name="NewShowLotSN">Specifies whether to show lot and serial numbers.</param>
/// <param name="DisplayAsmInfo">Specifies whether to display assembly information.</param>
procedure InitializeRequest(NewNoOfCopies: Integer; NewShowInternalInfo: Boolean; NewLogInteraction: Boolean; NewShowCorrectionLines: Boolean; NewShowLotSN: Boolean; DisplayAsmInfo: Boolean)
begin
NoOfCopies := NewNoOfCopies;
ShowInternalInfo := NewShowInternalInfo;
LogInteraction := NewLogInteraction;
ShowCorrectionLines := NewShowCorrectionLines;
ShowLotSN := NewShowLotSN;
DisplayAssemblyInformation := DisplayAsmInfo;
end;
local procedure IsReportInPreviewMode(): Boolean
var
MailManagement: Codeunit "Mail Management";
begin
exit(CurrReport.Preview or MailManagement.IsHandlingGetEmailBody());
end;
local procedure FormatAddressFields(SalesShipmentHeader: Record "Sales Shipment Header")
begin
FormatAddr.GetCompanyAddr(SalesShipmentHeader."Responsibility Center", RespCenter, CompanyInfo, CompanyAddr);
FormatAddr.SalesShptShipTo(ShipToAddr, SalesShipmentHeader);
ShowCustAddr := FormatAddr.SalesShptBillTo(CustAddr, ShipToAddr, SalesShipmentHeader);
end;
local procedure FormatDocumentFields(SalesShipmentHeader: Record "Sales Shipment Header")
begin
FormatDocument.SetSalesPerson(SalesPurchPerson, SalesShipmentHeader."Salesperson Code", SalesPersonText);
ReferenceText := FormatDocument.SetText(SalesShipmentHeader."Your Reference" <> '', SalesShipmentHeader.FieldCaption("Your Reference"));
end;
local procedure GetUnitOfMeasureDescr(UOMCode: Code[10]): Text[50]
var
UnitOfMeasure: Record "Unit of Measure";
begin
if not UnitOfMeasure.Get(UOMCode) then
exit(UOMCode);
exit(UnitOfMeasure.Description);
end;
/// <summary>
/// Returns a text string of blank spaces for indentation purposes.
/// </summary>
/// <returns>A text string with two blank spaces.</returns>
procedure BlanksForIndent(): Text[10]
begin
exit(PadStr('', 2, ' '));
end;
[IntegrationEvent(true, false)]
local procedure OnAfterInitReport()
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterPostDataItem(var SalesShipmentHeader: Record "Sales Shipment Header")
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterOnPreReport(var SalesShipmentHeader: Record "Sales Shipment Header")
begin
end;
}