Auswahlfeld und case .. switch
In einem Auswahlfeld werden die Wassergefährdungsklassen ausgewählt ("1", "2", "3", "n.w.g."). In einem benachbarten Berechnungsfeld soll der dazugehörige Text angezeigt werden. Die Zuordnung geschieht durch eine case ... switch Auswahl.
switch WGK do
case "1":
"schwach wassergefährdend"
case "2":
"deutlich wassergefährdend"
case "3":
"stark wassergefährdend"
case "4":
"nicht wassergefährdend"
end
Es irritiert mich jetzt der case "4", denn das ist die Aufzählungsnummer des Auswahlfeldes - damit funktioniert es, nicht jedoch mit einem Textvergleich, wie case "n.w.g.". Wieso eigentlich nicht?
Gruß Uwe
4 Antworten
-
Habe es jetzt gefunden. Mit einem switch text(WGK) funktioniert es. Logisch finde ich es allerdings nicht.
-
Hallo,
Anführungszeichen lassen Text erwarten - Du frägst aber IDs ab
switch WGK do
case 1:
"schwach wassergefährdend"
case 2:
"deutlich wassergefährdend"
case 3:
"stark wassergefährdend"
case 4:
"nicht wassergefährdend"
end
sollte es tun...
lg, Torsten
-
Hallo Thorsten,
eigentlich fragen ich immer Strings ab, case "1": usw. Habe jetzt im Handbuch gefunden, daß immer die interne ID geleifert wird, wenn man ein Auswahlfeld abfragt.
Die Beschreibung im Manual scheint mir aber unsinnig zu sein, dort soll die ID in einen String und dann wieder in eine Number() umgewandelt werden number(text(choice)) wobei choice die interne ID des Auswahlfeldes ist.
Zitat:"If value stems from a choice field, this will be the choice’s internal id. Use number(text(choice)) to get a numeric representation of the choice’s text."
PS: deine Lösung ist natürlich die Richtige. -
Hallo Uwe,
eine Abfrage des Auswahlfeldes gibt immer die ID der gewählten Option aus, wenn nicht weiter spezifiziert, der number(text(choice))-Konstrukt ist überflüssig, wie Du ja selbst erkannt hast. text(Auswahlfeld) gibt vergebenen Text der Auswahl aus.
Im Übrigen ist die direkte Verwendung der ID zu präferieren weil perfomanter.
lg, Torsten
Content aside
- vor 5 JahrenZuletzt aktiv
- 4Antworten
- 1493Ansichten