21. Mai 2024 12:57
page 50102 "ProductQuantities"
{
    PageType = List;
    Extensible = true; // The page can be extended
    layout
    {
        area(content)
        {
            group(General)
            {
                field(Position; Position)
                {
                    ApplicationArea = All;
                    Caption = 'Position';
                    ToolTip = 'Gibt die Position des Elements in der Liste an';
                }
                field(Quantity; Quantity)
                {
                    ApplicationArea = All;
                    Caption = 'Menge';
                    ToolTip = 'Gibt die Menge des Elements in der Liste an';
                }
            }
        }
    }
    // Variables for managing the quantities list
    var
        ProductQuantities: List of [Integer];
        Position: Integer;
        Quantity: Integer;
    trigger OnOpenPage()
    begin
        // Initializes the list with the preset quantities
        ProductQuantities.Add(50);
        ProductQuantities.Add(100);
        ProductQuantities.Add(30);
    end;
    actions                 <-------
    {
        area(processing)
        {
            // Action to remove an item from the list
            action("Remove Item")
            {
                ApplicationArea = All;
                Caption = 'Element entfernen';
                ToolTip = 'Entfernt ein Element aus der Liste, indem die Position angegeben wird';
                trigger OnAction()
                begin
                    ProductQuantities.Remove(Position);
                    Message('Element an Position %1 wurde entfernt.', Position);
                end;
            }
            // Action to add an item to the list
            action("Add Item")
            {
                ApplicationArea = All;
                Caption = 'Element hinzufügen';
                ToolTip = 'Fügt ein Element zur Liste hinzu, indem die Position angegeben wird';
                trigger OnAction()
                begin
                    ProductQuantities.Insert(Position, Quantity);
                    Message('Element an Position %1 wurde mit Menge %2 hinzugefügt.', Position, Quantity);
                end;
            }
            // Action to change the quantity of an item in the list
            action("Add Quantity")
            {
                ApplicationArea = All;
                Caption = 'Menge hinzufügen';
                ToolTip = 'Fügt eine Menge zu einem Element in der Liste hinzu, indem die Position angegeben wird';
                trigger OnAction()
                begin
                    if (Position >= 1) and (Position <= ProductQuantities.Count) then 
                    begin
                        var CurrentQuantity: Integer := ProductQuantities.Get(Position);
                        var NewQuantity: Integer := CurrentQuantity + Quantity;
                        ProductQuantities.Set(Position, NewQuantity);
                        Message('Element an Position %1 wurde auf Menge %2 erhöht.', Position, NewQuantity);
                    end 
                    else 
                    begin
                        Message('Position %1 ist ungültig. Bitte geben Sie eine gültige Position ein.', Position);
                    end;
                end;
            }
            action("Subtract Quantity")
            {
                ApplicationArea = All;
                Caption = 'Menge abziehen';
                ToolTip = 'Zieht eine Menge von einem Element in der Liste ab, indem die Position angegeben wird';
                trigger OnAction()
                begin
                    if (Position >= 1) and (Position <= ProductQuantities.Count) then 
                    begin
                        var CurrentQuantity: Integer := ProductQuantities.Get(Position);
                        var NewQuantity: Integer := CurrentQuantity - Quantity;
                        if NewQuantity < 0 then 
                        begin
                            Message('Die eingegebene Menge ist zu groß. Die aktuelle Menge beträgt %1.', CurrentQuantity);
                        end 
                        else 
                        begin
                            ProductQuantities.Set(Position, NewQuantity);
                            Message('Element an Position %1 wurde auf Menge %2 reduziert.', Position, NewQuantity);
                        end;
                    end 
                    else 
                    begin
                        Message('Position %1 ist ungültig. Bitte geben Sie eine gültige Position ein.', Position);
                    end;
                end;
            }
        }
    }
}21. Mai 2024 13:56
 Layout,Actions,Trigger, Globale Variablen, Funktionen (Procedure), Events (Procedure als Publisher).
 Layout,Actions,Trigger, Globale Variablen, Funktionen (Procedure), Events (Procedure als Publisher).21. Mai 2024 15:00