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
-
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)
-
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
-
Stimmt. Das hatte ich übersehen.
-
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.
Content aside
- vor 4 JahrenZuletzt aktiv
- 4Antworten
- 1166Ansichten