[Gelöst]Syntax error, '}' expected

21. Mai 2024 12:57

Ich habe versucht, Code zu schreiben, um zu verstehen, wie der Variablentyp List funktioniert (Variablentypen der Gruppe: Array, List und Dictionary).
Der Code, den ich geschrieben habe, lautet wie folgt:

Code:
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;
            }
        }
    }
}


Aber in Zeile 42, Spalte 5 erhalte ich die folgenden zwei Fehler: (Position mit Feil in code markiert)

Syntax error, '}' expected

Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)

Auch die Nutzung von Chat GPT löst das Problem nicht.

Ich verstehe nicht, wo der Fehler liegt.
Ich danke im Voraus für die Hilfe.
Zuletzt geändert von TheBugDeveloper am 21. Mai 2024 18:03, insgesamt 1-mal geändert.

Re: Syntax error, '}' expected

21. Mai 2024 13:56

Die Reihenfolge der Pagebereiche stimmt nicht, die Actions kommen nach dem Layout. :greenarrow: Layout,Actions,Trigger, Globale Variablen, Funktionen (Procedure), Events (Procedure als Publisher).
Als Beispiel hier die Page 31 aus der Base Application
https://github.com/StefanMaron/MSDyn365 ... st.Page.al

Re: Syntax error, '}' expected

21. Mai 2024 15:00

Vielen Dank für die Erklärung.

Ich musste noch ein paar Korrecturen und Verbesserung machen, aber hat funktioniert