0

Fehler in Switch case in Funktion was mache ich falsch?

Hallo zusammen

Ich habe untenstehhende Funktion, aber mein Switch funktioniert nicht.
Ich habe immer entweder das default als Rückgabewert oder die Option 1, egal was ich mitgebe im Parameter.
Was mache ich falsch?
Danke und Gruss Adrian

function GetConfig(input_idConfig : text) do
let OutPut := "";
let Modus := first(select Configuration where idConfig = input_idConfig).Modus;
switch Modus do
case Modus = "Text":
(OutPut := "Test 1")
case Modus = "TextMehrzeilig":
(OutPut := "Test 2")
case Modus = "TextFormat":
(OutPut := "Test 3")
case Modus = "Zahl":
(OutPut := "Test 4")
default:
(OutPut := "Test default")
end;
OutPut + "(Test Modus: " + Modus + " //Test IDConfig: " + input_idConfig + ") "
end

4 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Haefi, ist 'Modus' in der Tabelle 'Configuration' ein Auswahlfeld? Falls ja: Als Standard werden immer die numerischen IDs von Auswahlfeldern zurückgegeben. Wenn man statt dessen die Texteinträge der Auswahlfelder auswerten will, muss man das explizit angeben , also in diesem Fall mit

     

    text(Modus)

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hier ist auch ein Syntaxfehler drin: bei case werden nur Werte und nicht Bedingungen eingetragen:

    ---

    function GetConfig(input_idConfig : text) do
    let Modus := first(select Configuration where idConfig = input_idConfig).text(Modus);
    let OutPut :=switch Modus do
    case  "Text":
    "Test 1"
    case  "TextMehrzeilig":
    "Test 2"
    case "TextFormat":
    "Test 3"
    case "Zahl":
     "Test 4"
    default:
     "Test default"
    end;
    OutPut + "(Test Modus: " + Modus + " //Test IDConfig: " + input_idConfig + ") "
    end

    ---

    Leo

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Stimmt. Das hatte ich übersehen.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Nur der Vollständigkeit halber: Mit

     

    switch Modus != "" do
    case Modus = "Text": ...

     

    würde es auch funktionieren. Aber das wäre in diesem Fall natürlich Unsinn.