Enum mit Table und Page

26. Mai 2024 11:32

Ich habe probiert zu verstehen wie Enum funktioniert und habe folgende code gescrieben:

Code:
enum 50108 EnumTest
{
    Extensible = true;
    Caption = 'EnumTest';
   

    value(1; Rosso)
    {
        Caption = 'Rosso';
    }
    value(2; Blu)
    {
        Caption = 'Blu';
    }
    value(3; Verde)
    {
        Caption = 'Verde';
    }
}


enumextension 50108 EnumTestExtension extends EnumTest
{
    value(50108; Giallo)
    {
        Caption = 'Giallo';
    }
   
}

codeunit 50108 EnumCodeunit
{
    procedure SelectColor()
    var
        MyFavoColor: Enum "EnumTest";
    begin
        MyFavoColor := EnumTest::Giallo;
        case MyFavoColor of
            EnumTest::Rosso:
                Message('Rosso');
            EnumTest::Blu:
                Message('Blu');
            EnumTest::Verde:
                Message('Verde');
            EnumTest::Giallo:
                Message('Giallo');
        end;
    end;
}

table 50108 EnumTable
{
    DataClassification = ToBeClassified;
    Caption = 'EnumTable';

   
    fields
    {
        field(1;ID; Code[20])
        {
            DataClassification = ToBeClassified;
            Caption = 'ColorID';
        }
        field(2;Color; Enum EnumTest)
        {
            DataClassification = ToBeClassified;
            Caption = 'Color';
        }
       
    }
   
    keys
    {
        key(PKey; ID)
        {
            Clustered = true;
        }
    }
   
       
}

page 50108 EnumPage
{
    PageType = Card;
    ApplicationArea = All;
    UsageCategory = Documents;
    SourceTable = EnumTable;
   
    layout
    {
        area(Content)
        {
            group(GroupName)
            {
                field(Color;Color)
                {
                    ApplicationArea = All;
                    Caption   = 'Color';
                    ToolTip = 'Select a Color';
                   
                   
                }
            }
        }
    }

}


Die Benutzung mit Codeunit glaube dass es richtig ist, aber:
mit Table bin mir nicht sicher ob es richtig ist (obwohl ich keine Fehlermeldung von VS bekomme, aber glaube dass ich die Table Ralation property benutzen muss
mit Page weiß ich nicht wie ich Enum benutzen/verbinden kann
Meine Idee war es, dem Benutzer die Möglichkeit zu geben, auf der Page eine Farbe aus den in der Enum aufgeführten Farben auszuwählen, um sie dann in die Tabelle einfügen zu können

Vielen Dank im Voraus an diejenigen, die mir eine Erklärung geben können.

Re: Enum mit Table und Page

27. Mai 2024 08:00

Moin,

ich denke das Problem ist, dass du auf einen leeren Datensatz stehst.
Füge in deine Page den PK hinzu.
Code:
page 50108 EnumPage
{
    PageType = Card;
    ApplicationArea = All;
    UsageCategory = Documents;
    SourceTable = EnumTable;

    layout
    {
        area(Content)
        {
            group(GroupName)
            {
                field(ID; Rec.ID)
                {
                    ApplicationArea = All;
                    Caption = 'ID';
                }
                field(Color; Rec.Color)
                {
                    ApplicationArea = All;
                    Caption = 'Color';
                    ToolTip = 'Select a Color';


                }
            }
        }
    }

}


Vergebe jetzt eine ID und danach solltest du ein Enum-Wert auswählen können.

Gruß Bastian

Re: Enum mit Table und Page

28. Mai 2024 17:49

Danke,

morgen probiere ich.