Report 99000769 Output Item Label, source in 29

Source29

src/Layers/W1/BaseApp/Manufacturing/Document/OutputItemLabel.Report.al128 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.Document;

using Microsoft.Inventory.Item;
using Microsoft.Inventory.Ledger;
using Microsoft.Inventory.Tracking;
using System.Text;

report 99000769 "Output Item Label"
{
    UsageCategory = Tasks;
    ApplicationArea = Manufacturing;
    WordMergeDataItem = ItemLedgerEntry;
    DefaultRenderingLayout = Word;
    Caption = 'Production Output Item Label';

    dataset
    {
        dataitem(ItemLedgerEntry; "Item Ledger Entry")
        {
            DataItemTableView = where("Entry Type" = const("Item Ledger Entry Type"::"Output"));
            RequestFilterFields = "Order No.", "Item No.";

            column(ItemNo; "Item No.")
            {
            }
            column(Description; ItemDescription)
            {
            }
            column(BaseUnitofMeasure; ItemBaseUnitOfMeasure)
            {
            }
            column(VariantCode; "Variant Code")
            {
            }
            column(BarCode; BarCode)
            {
            }
            column(QRCode; QRCode)
            {
            }

            trigger OnAfterGetRecord()
            var
                Item: Record Item;
                BarcodeString: Text;
                BarcodeFontProvider: Interface "Barcode Font Provider";
                BarcodeFontProvider2D: Interface "Barcode Font Provider 2D";
            begin
                BarcodeFontProvider := Enum::"Barcode Font Provider"::IDAutomation1D;
                BarcodeFontProvider2D := Enum::"Barcode Font Provider 2D"::IDAutomation2D;

                case ItemTrackingType of
                    ItemTrackingType::"Serial No.":
                        BarcodeString := "Serial No.";
                    ItemTrackingType::"Lot No.":
                        BarcodeString := "Lot No.";
                    ItemTrackingType::"Package No.":
                        BarcodeString := "Package No.";
                end;

                if StrLen(BarcodeString) > 0 then begin
                    BarcodeFontProvider.ValidateInput(BarcodeString, BarcodeSymbology);
                    BarCode := BarcodeFontProvider.EncodeFont(BarcodeString, BarcodeSymbology);
                    QRCode := BarcodeFontProvider2D.EncodeFont(BarcodeString, BarcodeSymbology2D);

                    if Item.Get("Item No.") then begin
                        ItemDescription := Item.Description;
                        ItemBaseUnitOfMeasure := Item."Base Unit of Measure";
                    end
                end else
                    CurrReport.Skip();
            end;

        }
    }

    requestpage
    {
        SaveValues = true;
        AboutTitle = 'Print labels for posted output items';

        layout
        {
            area(content)
            {
                group(Options)
                {
                    Caption = 'Options';
                    field("Item Tracking Type"; ItemTrackingType)
                    {
                        ApplicationArea = Basic, Suite;
                        Caption = 'Item Tracking Type';
                        ToolTip = 'Specifies which type of Item Tracking No. to print on the label.';
                    }
                }
            }
        }
    }

    rendering
    {
        layout(Word)
        {
            Type = Word;
            LayoutFile = './Manufacturing/Document/OutputItemLabel.docx';
            Summary = 'Report layout made for print. Use a Word editor to modify the layout.';
        }
    }

    var
        BarcodeSymbology: Enum "Barcode Symbology";
        BarcodeSymbology2D: Enum "Barcode Symbology 2D";
        ItemBaseUnitOfMeasure: Code[10];
        BarCode, QRCode, ItemDescription : Text;
        ItemTrackingType: Enum "Item Tracking Type";

    trigger OnInitReport()
    begin
        BarcodeSymbology := Enum::"Barcode Symbology"::Code39;
        BarcodeSymbology2D := Enum::"Barcode Symbology 2D"::"QR-Code";
    end;

}